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类中进行的。我将在下面发布我的解决方案,以防有人能帮我找到更干净的解决方案。谢谢