需要创建表单,用户可以根据需要添加或删除字段,例如用户可以添加电子邮件,在表单中没有电话字段或喜欢家庭信息等,或者如果用户不想要该字段,他可以删除该字段。我可以创建这个表单或字段的 Django 属性。
动态创建表单并不难,尽管您需要一些东西来确定每个请求应包含的内容。可以使用(Python(type
的三参数形式。例如
fields = {
'foo': forms.CharField( max_len=80 )
'bar': forms.IntegerField()
}
MyForm = type( 'MyForm', (forms.Form, ), fields)
...
form = MyForm()
这与
class MyForm( forms.Form):
foo = forms.CharField( max_len=80 )
bar = forms.IntegerField()
...
form = MyForm()
除了您可以动态构造fields
的内容,使用某些运行时实体来决定表单中应包含哪些具有什么名称和什么类型的字段。