如何加入相关对象并在模板中渲染它们?

How to join related objects and render them in template?

我有两个相关车型:

class Poll(models.Model):
    creator = models.ForeignKey(User, blank=True, null=True)
    title = models.CharField(max_length=300)
    pub_date = models.DateTimeField('date published')
    published = models.BooleanField(default=True)


class Choice(models.Model):
    poll = models.ForeignKey(Poll)
    choice_text = models.CharField(max_length=300)
    votes = models.IntegerField(default=0)

我的问题是如何在模板中列出所有投票及其各自的选择。

我现在的 ORM 查询是:

polls = Choice.objects.select_related('poll') 

并在模板中:

{% for p in polls %}

 <li>{{p.choice_text}}</li> 

{% endfor %}

但是这个解决方案只列出了选项。我想要的是呈现与每个民意调查相关的选择。我怎样才能做到这一点?

查询集:

polls = Polls.objects.all() # Give you all polls

模板:

{% for p in polls %}
    <p>Poll :{{ p.title }}</p>
    <ul>
    {% for choice in p.choice_set.all %}
       <li>{{ choice.choice_text }}</li>
    {% endfor %}
    </ul>
{% endfor %}

如果我理解你的问题,希望这对你有所帮助