码迷,mamicode.com
首页 > 编程语言 > 详细

python-day97--django-ModelForm

时间:2017-12-06 21:47:25      阅读:214      评论:0      收藏:0      [点我收藏+]

标签:idg   ror   利用   rtc   length   attrs   djang   pre   text   

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()

 

python-day97--django-ModelForm

标签:idg   ror   利用   rtc   length   attrs   djang   pre   text   

原文地址:http://www.cnblogs.com/liuwei0824/p/7994395.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!