kel*_*fix 4 django django-models
我有三个模型,一个主题可以有零个或多个问题,一个问题可以有零个或多个答案.只有一个答案是对的.
他们是多对一的关系.
class Topic(models.Model):
class Question(models.Model):
topic = models.ForeignKey(Topic)
class Answer(models.Model):
question = models.ForeignKey(Question)
isright = models.BooleanField(verbose_name='Right')
Run Code Online (Sandbox Code Playgroud)
现在我尝试基于主题循环问题,我怎样才能用模板实现它?
<topic>
<question>
<answer>
<answer>
<answer>
<answer>
<question>
<answer>
<answer>
<answer>
<answer>
Run Code Online (Sandbox Code Playgroud)
如何为问题添加分页器?
paginator = Paginator(topic.question_set.all(), 25)
Run Code Online (Sandbox Code Playgroud)
如果我理解得很好,你想循环"主题"排序的答案:
answers = Answer.objects.order_by('question__topic', 'question')
Run Code Online (Sandbox Code Playgroud)
要么:
for topic in Topic.objects.all():
for question in topic.question_set.all():
for answer in question.answer_set.all():
...do something...
Run Code Online (Sandbox Code Playgroud)
在模板中,您可以执行相同操作,将变量提供topics为Topic.objects.all():
{% for topic in topics %}
{% for question in topic.question_set.all %}
{% for answer in question.answer_set.all %}
...do something...
{% endfor %}
{% endfor %}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)