【发布时间】:2018-05-01 09:08:02
【问题描述】:
我在我的 HTML 模板中构建了一个 for 循环,它几乎可以工作了。我遇到的问题是它列出了与不同巡回赛不同的比赛。
我认为解决此问题的方法是在视图中添加一个过滤器,该过滤器基本上说“只拉入与这次巡演有关的比赛”,这是我在下面的 Match.objects.filter( ) 但它不起作用,我不知道为什么。
class CricketCalendar(generic.ListView):
template_name="monthly_view/cricket-monthly-view.html"
context_object_name='cricket_monthly_view'
queryset = CricketMonthlyView.objects.all()
def get_context_data(self, **kwargs):
context = super(CricketCalendar, self).get_context_data(**kwargs)
context['Tour'] = Tour.objects.all()
context['Match'] = Match.objects.filter(tour=self.request.Tour)
return context
我也尝试了以下方法,但都没有成功:
self.kwargs['pk']
self.kwargs['Tour']
编辑,忘记添加以下内容:
每月查看models.py:
class CricketMonthlyView(models.Model):
tour = models.ForeignKey('cricket.Tour', on_delete=models.CASCADE,
related_name='tour_name')
match_id = models.ForeignKey('cricket.Match', on_delete=models.CASCADE)
和 URLs.py:
url(r'^monthly-view/$', monthly_view.CricketCalendar.as_view(), name='cricket-monthly'),
板球模型.py:
class Tour(models.Model):
name = models.CharField(max_length=200)
tier_level = models.ForeignKey('sports.Tier')
country = CountryField()
class Match(models.Model):
tour = models.ForeignKey('Tour', on_delete=models.CASCADE)
还有 HTML 模板:
{% for match_info in cricket_monthly_view %}
{% for tour in Tour %}
<ul>
<li>{{tour.name}}</li>
</ul>
{% for match in Match %}
<ul>
<li>{{match.home_team}}</li>
<li>{{match.away_team}}</li>
</ul>
{% endfor %}
{% endfor %}
{% endfor %}
【问题讨论】:
-
这里没有足够的信息。
CricketMonthlyView、Tour和Match如何相互关联?视图的 URL 模式是什么?不工作的 for 循环是什么样的? -
我的错。我更新了我原来的帖子。
标签: django django-templates django-views django-class-based-views django-template-filters