Django 和编程菜鸟在这里。我正在制作一个选举信息应用程序,在选举页面上我想显示所有正在参加选举的候选人,但我不想显示选举主持人已宣布为被屏蔽用户的候选人。
我可以通过使用 {% for Candidate inelection.candidate_set.all %} 来显示参加选举的所有候选人的列表。但是,我想首先检查候选人是否是blocked_user,如果他们不是blocked_user,则只显示候选人。正如您在下面的模板中看到的那样,我认为我可以使用语句 {% if Candidate inelection.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 %}
模型.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"