Django和編程noob在這裏。我正在製作一個選舉信息應用程序,並在選舉頁面上顯示所有正在競選的候選人,但我不要想要顯示選舉的主持人已宣佈阻止的候選人用戶。如何防止阻止的用戶出現在此用戶列表中?
我可以在{%election.candidate_set.all%的候選人}使用顯示在選舉中運行的所有候選人名單。但是,我想首先檢查候選人是否是blocked_user,並且只在候選人不是blocked_user時才顯示候選人。正如你可以在下面的模板中看到的,我認爲我可以使用聲明{%如果候選人在election.blocked_users.all%},但這不適合我...
對不起,我是這樣的菜鳥。任何幫助將不勝感激。
election_detail.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)})
編輯 - 添加視圖供選
election.py
class ElectionDetailView(DetailView):
model = Election
context_object_name = "election"
由於結節太空公主,我沒有想到這一點......我其實沒有做之前,從控制器過濾這樣的。 我編輯視圖到上面的帖子。我很困惑,因爲blocked_users是Election的一個屬性。我想是的blocked_users不出現在模板election_detail.html當我打電話{%爲候選人election.candidate_set.all%}。我可以從ElectionDetailView中的election.candidate_set.all中篩選出blocked_users嗎?如果可以的話,你能指出我需要的信息來解決這個問題嗎? –