一、使用情景
在我们的后台管理页面中需要一个表单来提交和修改博客,按照上一篇讲的,我们可以这么使用:
先定义一个 Form类,包括标题、标签和内容三个字段:
class ArticleForm(forms.Form):
title = forms.CharField(label='标题', max_length=50)
tags = forms.CharField(label='标签', max_length=50)
content = TextFiled(label='内容')
然后在页面中就可以直接使用 form,在提交表单时,我们还需要将各个字段赋值给 model的对应字段。
在修改文章的页面我们需要先将表格填充好,再渲染页面。
这时我们的表单还只有几个字段,工作量并不大,但是如果表单的字段增加到十几个,工作量就有点大了。
幸好 Django为我们提供了 ModelForm
类,可以根据已存在的 Model类来自动地创建 Form
类。
二、使用 ModelForm
使用 ModelForm
很简单,我们只需要创建一个元类并给对应的属性赋值即可,如下:
class ArticleForm(forms.ModelForm):
class Meta:
model = Post
fields = ['title'