【发布时间】:2012-12-06 21:21:39
【问题描述】:
我正在尝试创建一个灵活的应用程序来管理调查。我想要的是一个 视图,显示与调查相关的所有问题、选项和后续问题。我有以下型号:
class Survey(models.Model):
title = models.CharField(max_length=300)
class Question(models.Model):
question_text = models.CharField(max_length=300)
belongs_to_survey = models.ForeignKey('Survey', related_name='questions')
follow_up_to_answer = models.ForeignKey('Question', null=True, related_name='follow_up_questions')
class Option(models.Model):
answer_text = models.CharField(max_length=200)
belongs_to_question = models.ForeignKey('Question', related_name='options')
我研究了 inlineformset_factory,但这只允许“一级嵌套”。我所拥有的理论上是“无限的”
Survey -> Questions -> Options -> Follow-up-Questions -> Options --\
^\____________________/
我做错了吗?据我所见,这个问题应该很常见,但是 stackoverflow 和其他地方的问题数量表明并非如此。
【问题讨论】:
-
所以您希望能够编辑所有问题并跟进调查的问题,对吗?你在使用 ModelForm 吗?
-
正确,@czarchaic。是的,假设我为每个模型使用了一个 ModelForm。
-
我不太明白你在说什么嵌套。如果您在问题模型中有 follow_up_to_answer,那么为什么不在某些调查中使用问题 ID 来订购它们。如果下一个问题取决于 Option(或上一个问题的答案),为什么 follow_up_to_answer 是 Question 的字段而不是 Option 的?
标签: django django-forms