Django - 通过迭代数据库中的数据来创建表单字段?

时间:2014-04-29 19:42:45

标签: python django python-3.x django-models django-forms

我想根据我存储在数据库中的值设置一个表单。

我们说我有一些这样的模型:

class Questions(models.Model):
    question = models.CharField(max_length=350)

class Answers(models.Model):
    question = models.ForeignKey(Questions)
    answer = models.CharField(max_length=350)

我想以这种方式创建一个表单:

for x in Questions:
   answer = forms.CharField(label = x.question)

因此,在数据库中存储有问题时,表格中的答案字段数确切。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

这是我提出的解决方案。似乎工作正常,但我觉得我有一个更清洁的解决方案。

在我的forms.py中:

class AnswerForm(forms.Form):
    def __init__(self, *args, **kwargs):
         super(AnswerForm, self).__init__(*args, **kwargs)

         for x in Questions.objects.all():
         self.fields[x.question] = ModelChoiceField(queryset=.....