24 Jul 18 ModelForm
Posted zhangyaqian
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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
以上是关于24 Jul 18 ModelForm的主要内容,如果未能解决你的问题,请参考以下文章
25 Jul 18 批量导入 保持搜索 Q补充 GET/POST
Report WebCore crash to the ErrorReportUtils at:Fri Jul 24 09:59:08 格林尼治标准时间+0800 2015