Django-------ModelForm

http://www.cnblogs.com/yuanchenqi/articles/8034442.html   详细参考大神博客

ModelForm即model + form

1、先引入操作  》》》》 from django.forms import ModelForm

2、进行下面的操作,这是要进行转换成BookModelForm这个类(自己定义的);    下面的这个model以及fields都是Meta内置定好的,后面的是自己写的

3、在html中的操作》》》as_p方法表示显示全部,这样的话,页面上的所有信息,都能显示出来

 

4、修改成中文的,用lable,且是个字典,这是把字典中的键,改成中文的形式作为值;》》右侧是中文效果图

 

5、用field__all__,会显示出下面所有的字段,为什么会这么显示呢,因为有的表示多对多的,所以会这么显示

 

6、把错误信息的英文修改成中文的,且小方框部分的单词不是瞎写的,是默认的

这些上下都是一一对应关系

这个把报错的信息,放到了右边来提示

 

这个是直接能添加一本书,只需要这么一个操作就能完整的添加一本书,因为model和form的结合,由modelform完成了这件事情(不用自己取数据之类的繁琐步骤)

 

编辑页面开始
    加上这个instance之后,就知道要修改哪条数据了,换句话说,所要进行修改的数据则会直接显示在页面上,这个就不用判断哪个是所被选中的了,也就是要修改的这条数据,默认的都会显示出来  

 edit的注释

 

 

 

 

 

自己简单总结流程:

model-form流程:
    
    (1) 定义modelForm:
            from django.forms import ModelForm
            class BookModelForm(ModelForm):
                class Meta:
                    model=Book
                    fields="__all__"
                    labels={
                        "title":"书名",
                        "price":"价格",
                    },
                    error_messages={
                        "title":{"required":"不能为空"}
                    }
            
    
    
    (2) 按照form对象使用定义modelForm的对象;
          
        def add:
               
               if GET:
                     form=BookModelForm()
                     return render(request,"add.html",locals())
    
               if POST:
                     form=BookModelForm(request.POST)
                     if form.is_valid():
                         form.save()
                         return redirect("/index/")
                        
                        
        def edit:
                edit_book = Book.objects.filter(pk=id).first()
                if GET:
                    
                    if request.method=="GET":

                        form=BookModelForm(instance=edit_book)
                        return render(request,"edit.html",locals())
                        
                    if POST:
                        form=BookModelForm(data=request.POST,instance=edit_book)
                        if form.is_valid():
                            form.save()
                            return redirect("/index/")

  未完待续.................

posted @ 2018-03-15 20:45  Justin壮志凌云  阅读(79)  评论(0)    收藏  举报