为了账号安全,请及时绑定邮箱和手机立即绑定

如何在Django表单中创建字段列表

如何在Django表单中创建字段列表

守着星空守着你 2021-03-28 14:15:47
有什么办法可以使django表单类实际包含一个字段数组?我有一个数据库,它将提取可变数量的问题来询问用户,每个问题都知道如何定义它的小部件...等等,我似乎无法将其连接到Django表单。我尝试了这个:class MyForm(forms.Form):    question = []    questions = Question.objects.all()    for q in questions:        question.append(forms.CharField(max_length=100, label=q.questionText))但这在我创建的新实例时似乎没有暴露我的问题列表MyForm。有什么方法可以使用django表单获取可变数量的表单字段,或者这超出了它的功能范围?
查看完整描述

2 回答

?
慕桂英546537

TA贡献1848条经验 获得超10个赞

当然可以!


class MyForm(forms.Form):

    def __init__(self, *args, **kwargs):

        super(MyForm, self).__init__(*args, **kwargs)

        for i, q in enumerate(Question.objects.all()):

            self.fields['%s_field' % i] = forms.CharField(max_length=100, label=q.questionText)

注意:请确保您的问题在两次呼叫之间是顺序排列的。因为表单提交,回执等都会重新填充字段列表。


如果数据是有序的并且是静态的,那将不是问题。


另外,您可能希望查看FormSets,这是一种可能更适合您的情况的表单列表。


查看完整回答
反对 回复 2021-04-02
  • 2 回答
  • 0 关注
  • 217 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号