Django とプログラミング初心者はこちら。選挙情報アプリを作っているのですが、選挙ページに出馬中の候補者をすべて表示したいのですが、選挙のモデレーターがブロックユーザーを宣言した候補者は表示したくありません。
{% for候補者 inlection.candidate_set.all %} を使用して、選挙で出馬しているすべての候補者のリストを表示できます。ただし、最初に候補がblocked_userかどうかを確認し、blocked_userでない場合にのみ候補を表示したいと思います。以下のテンプレートでわかるように、{% if候補者 inlection.blocked_users.all %} というステートメントを使用できると思いましたが、それはうまくいきません...
申し訳ありませんが、私はとても初心者です。どんな助けでも大歓迎です。
選挙詳細.html
{% for candidate in election.candidate_set.all %}
{% if candidate in election.blocked_users.all %}
<!--do nothing-->
{% else %}
<h3>{{ candidate.name }}</h3>
{% endif %}
{% endfor %}
models.py
class Election(models.Model):
name = models.CharField(max_length=50)
description = models.TextField()
first_voting_day = models.DateField()
last_voting_day = models.DateField(null=True, blank=True)
constituency = models.ForeignKey(Constituency)
offices = models.ManyToManyField(Office)
moderators = models.ManyToManyField(User, related_name='moderator')
blocked_users = models.ManyToManyField(User, related_name='blocked_users', blank=True)
def __unicode__(self):
return unicode(self.name)
def get_absolute_url(self):
return reverse('election_detail', kwargs={'pk': str(self.id)})
編集- 選挙のビューを追加しました
選挙.py
class ElectionDetailView(DetailView):
model = Election
context_object_name = "election"