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

时间:2012-12-06 21:21:40

标签: 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.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和其他地方的问题数量则表明不然。

1 个答案:

答案 0 :(得分:0)

两次使用inlineformset_factory

  1. 显示Question
  2. Survey个实例
  3. 显示每个Option
  4. Question个实例

    然后,在模板显示表单中,每option_formset form question_formset之后打印{{1}}个实例。