• 24 Jul 18 ModelForm


    24 Jul 18 (ModelForm)

    https://www.cnblogs.com/yuanchenqi/articles/8034442.html

     

    如果不用ModelForm,将Model手动转成Form时,对于非一对一字段,可能要使用以下字段类:

    ChoiceField是Field的子类:拿从内存中取的数据时用

    ModelChoiceField 是ChoiceField的子类: 拿从数据库中取的数据时用(多对一)

    ModelMultipleChoiceField是ModelChoiceField的子类: 拿从数据库中取的数据时用(多对多)

     

    is_pub=forms.ChoiceField(choices=((1,"出版"),(2,"未出版"),))

    publish=forms.ModelChoiceField(queryset=Publish.objects.all())

    authors=forms.ModelMultipleChoiceField(Author.objects.all())

     

    ModelForm: 将Model转换成Form,从而进行下一步调用

     

    class BookModelForm(forms.ModelForm):

        class Meta:

            model=Book

           fields="__all__"

                  

    添加表单:          

           GET:

                  form=BookModelForm()

                  form:渲染

           POST:

                  form=BookModelForm(request.POST)

                  form.is_valid()

                  form.save() # 添加数据create

     

    编辑表单:

        edit_book = Book.objects.get(pk=id)

        GET:

                  form=BookModelForm(instance=edit_book)

                  form:渲染

           POST:

              form=BookModelForm(request.POST,instance=edit_book)

                  form.is_valid

                  form.save() # 更新数据update

  • 相关阅读:
    软件工程提问回顾与个人总结
    OO第二次单元总结
    OO第一次单元总结
    软件工程结对项目
    软件工程第一次阅读作业
    软件工程第0次个人作业
    结队作业
    软件工程第一次阅读作业
    软工第0次作业
    oo第四篇博客作业
  • 原文地址:https://www.cnblogs.com/zhangyaqian/p/py20180724.html
Copyright © 2020-2023  润新知