如何在 django 中制作一个类似于谷歌表单的表单?用户可以在哪里根据需要添加或删除字段?用户最多可以添加10-20个字段?

Posted

技术标签:

【中文标题】如何在 django 中制作一个类似于谷歌表单的表单?用户可以在哪里根据需要添加或删除字段?用户最多可以添加10-20个字段?【英文标题】:How to make a form in django like google form? where user can add or delete field according to their need?User can add up to 10-20 field? 【发布时间】:2020-04-03 10:47:34 【问题描述】:

需要创建表单,用户可以根据需要添加或删除字段,例如用户可以添加电子邮件、在表单中没有字段或喜欢家庭信息等,或者如果用户不想要该字段,他可以删除场地。我可以让你创建这个表单或字段的哪个 Django 属性。

【问题讨论】:

【参考方案1】:

动态创建表单并不难,尽管您需要一些东西来确定每个请求应该包含什么。可以使用 (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 的内容,使用一些运行时实体来决定表单中应该包含哪些名称和类型的字段。

【讨论】:

以上是关于如何在 django 中制作一个类似于谷歌表单的表单?用户可以在哪里根据需要添加或删除字段?用户最多可以添加10-20个字段?的主要内容,如果未能解决你的问题,请参考以下文章

如何更正用户输入(类似于谷歌“你的意思是啥?”)

考虑到视图位于其之上,如何专注于谷歌地图上的位置?

突出显示图像上的文字,类似于谷歌翻译应用程序

如何构建知识图谱?

django:如何从包含外键的多个模型中制作一个表单

我可以在 django 中的单个表单中使用多个表单集,如果可以的话如何?