我在写我的第一个django应用程序,似乎无法通过ListView将“行级”数据传递给模板。具体来说,我试图使用PollListView显示所有投票和相应的投票信息。ListView中额外的“行级”数据django
目前我只能通过所有投票到模板,但只想通过属于特定投票的投票。
models.py
class Poll(models.Model):
user = models.ForeignKey(User, unique=False, blank=False, db_index=True)
title = models.CharField(max_length=80)
class Vote(models.Model):
poll = models.ForeignKey(Poll, unique=False, blank=False, db_index=True)
user = models.ForeignKey(User, unique=False, blank=True, null=True, db_index=True)
vote = models.CharField(max_length=30, blank=False, default='unset', choices=choices)
views.py
class PollListView(ListView):
model = Poll
template_name = 'homepage.html'
context_object_name="poll_list"
def get_context_data(self, **kwargs):
context = super(PollListView, self).get_context_data(**kwargs)
context['vote_list'] = Vote.objects.all()
return context
urls.py
urlpatterns = patterns('',
...
url(r'^$', PollListView.as_view(), name="poll-list"),
}
homepage.html
{% for poll in poll_list %}
{{ poll.title }}
{% for vote in vote_list %}
{{ vote.id }} {{ vote.vote }}
{% endfor %}
{% endfor %}
看起来像一件容易的事,但我似乎无法弄清楚如何使用基于类的意见,做到这一点。我应该使用mixins还是extra_context?覆盖queryset?或者我应该使用基于功能的视图来解决这个问题。
任何帮助将不胜感激。
什么错误? –
您要求提供所有投票。你应该使用'Vote.objects.filter(poll = instance)'我想。 –
@RobL我没有收到任何错误,因为我得到的每个投票都返回了所有投票。因此,如果每个民意调查有1票,我有3个民意调查,我得到民意调查 - 3票,民意调查 - 3票,民意调查 - 3票。 – Darth