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()
  • 相关阅读:
    求X的N次乘方
    用辗转相除法求两个正整数的最大公约数
    求两、三个数中较大者的函数
    电文加密问题
    C#纯数学方法递归实现货币数字转换中文
    查找二维数组的查找之杨氏矩阵
    IT公司笔经面经
    排序2计数排序,桶排序
    windows Concurrency Runtimewindows的并行编程模型
    <c++ primer>第五部分 高级主题
  • 原文地址:https://www.cnblogs.com/liuwei0824/p/7994395.html
Copyright © 2011-2022 走看看