私は自分の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'),
クリケットmodels.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-loopは動作していません。 – Alasdair
私の悪いです。元の投稿を更新しました。 –