Python Django-通过遍历数据库中的数据来创建表单字段?

Python Django-通过遍历数据库中的数据来创建表单字段?,python,django,python-3.x,django-models,django-forms,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) 我想用这种方式创建一个表单: fo

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

假设我有一些这样的模型:

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)

因此,表单中的答案字段数量与数据库中存储的问题数量完全相同。有什么想法吗?

这就是我提出的解决方案。看起来不错,但我觉得我缺少一个更干净的解决方案

在my 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=.....

我最近有一个类似的问题。看看这是否有帮助。在您的字典中,键是疑问对象,值是相关答案对象的查询集。@souldeux,令人惊讶的是,它确实有用!它将我引向ModelChoiceField/ChoiceField,这基本上是解决此问题的关键。它还向我展示了字段的迭代是在init中进行的,而不仅仅是在form类中进行的。我将在下面发布我的解决方案,以防有人能帮我找到更干净的解决方案。谢谢