• 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

  • 相关阅读:
    正则表达式简介
    SQL 语言类型
    C# 与 SQL Server 的数据类型对应关系
    Visual Studio 各版本下载
    使用 Parallel LINQ 进行数据分页
    操作系统版本
    C# 命名规范
    解决chrome浏览器在win8下没有注册类的问题
    HttpClient的基本使用
    HttpClient介绍
  • 原文地址:https://www.cnblogs.com/zhangyaqian/p/py20180724.html
Copyright © 2020-2023  润新知