zoukankan      html  css  js  c++  java
  • python-day97--django-ModelForm

    Model Form :直接利用你的models里的字段
        
            应用场景:
                - ModelForm - 中小型应用程序(model是你自己写的)
                - Form      - 大型应用程序  
            注意事项:
                - 1. 类 
                      from django.shortcuts import render,redirect,HttpResponse
                      from app01 import models
                      from django.forms import Form,ModelForm
                      from django.forms import fields
                      from django.forms import widgets as wd
                      
                      class Foo(ModelForm):
                      
                        title = fields.CharField(max_length=6,required=True,widget=wd.Textarea())  #可以自定义字段,如果该字段与下面的表内的字段不冲突,那就会增加一个,如果冲突就会覆盖下方类中的字段
                        
                        class Meta:
                            # model = models.Role      #Role表内的所有字段就直接拿过来了
                            # fields = "__all__"        #指定字段
                            # fields = ['caption',]        #指定字段
                            # exclude = ['catpion']        #指定字段
                            model = models.UserType
                            fields = "__all__"
    
                            error_messages = {
                                'title':{'required':'名称不能为空','invalid':'格式错误'}
                            }
                            widgets = {
                                'title':wd.TextInput(attrs={'class':'c1'})
                            }
                        
                        
                        # 钩子函数
                    
                - 2. 添加
                     GET:
                        form = Foo()
                     POST:
                        form = Foo(data=request.POST)
                        form.is_valid()
                        
                        form.cleaned_data
                        form.save()      #直接把干净的数据帮你创建了记录,无论是单表还是多表
                        
                        form.erros
                        
    
                - 3. 修改
                     GET:
                        form = Foo(instance=obj)     
                     
                     POST:
                        form = Foo(instance=obj,data=request.POST)   #如果不写instance=obj数据库会多增加一条记录不会修改,给它一个对象表示向对象修改数据
                        ...
                        form.save()
  • 相关阅读:
    ORM之聚合和分组查询
    ORM之ManyToManyField操作
    ORM之ForeignKey操作
    ORM之一般操作
    ORM之元信息
    js浮点数的加减乘除
    如何用js去判断当前是否在微信中打开的链接页面
    Vue应用框架整合与实战--Vue技术生态圈篇
    图片纯前端JS压缩的实现
    js要怎么接收后端传的excel文件流?
  • 原文地址:https://www.cnblogs.com/liuwei0824/p/7994395.html
Copyright © 2011-2022 走看看