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()
  • 相关阅读:
    将博客搬至CSDN
    模板:abs用法
    《CLR via C#》读书笔记--基元类型、引用类型和值类型
    入门鼠标右键事件(快捷菜单)
    C#委托学习
    广播最佳实践---实现强制下线
    android动态注册监听网络变化异常
    码流识别与传输
    对最近的RTP和H264学习进行总结整理-04.20
    H264解码学习-2015.04.16
  • 原文地址:https://www.cnblogs.com/liuwei0824/p/7994395.html
Copyright © 2011-2022 走看看