在Django中显示所有相关对象的内联表单

在Django中显示所有相关对象的内联表单,django,django-forms,Django,Django Forms,我正在尝试创建一个灵活的应用程序来管理调查。我想要的是一个 视图显示与调查相关的所有问题、选项和后续问题。我有以下型号: 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.Fore

我正在尝试创建一个灵活的应用程序来管理调查。我想要的是一个 视图显示与调查相关的所有问题、选项和后续问题。我有以下型号:

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_工厂,但这只允许“一级嵌套”。我拥有的理论上是“无限的”


我做错什么了吗?据我所知,这个问题应该很常见,但这里关于stackoverflow和其他地方的问题数量表明情况并非如此

使用
inlineformset\u工厂
两次:

  • 显示
    调查的
    问题
    实例
  • 显示每个
    问题的
    选项
    实例

  • 然后,在模板中,在
    选项\u表单集
    的每个
    问题\u表单集
    表单
    后都会打印实例来显示表单,因此您希望能够编辑调查的所有问题和后续问题,对吗?你在用模型吗?正确,Czarchic。是的,假设我对每个模型都使用了一个模型表单。我不太明白你在说什么。如果您在问题模型中有后续的答案,那么为什么不在某些调查中使用问题id来排序呢。如果下面的问题取决于选项(或上一个问题的答案),那么为什么后续的答案是问题的字段而不是选项的字段?好吧,这必须递归地进行,以显示每一层嵌套。因为每个
    选项
    都可以有一个新的
    后续问题
    ,提供可能无限的选项和问题嵌套。
    Survey -> Questions -> Options -> Follow-up-Questions -> Options --\
                                                 ^\____________________/