在我的应用程序中,每个项目都链接到一个团队,该团队有几个,每个成员都需要回答一个调查,该调查存储在我的数据库“Response”中
我想在我的页面中显示一个jumbotron,只有当所有用户在数据库中都有响应时。
我试过了:
<div class="container paddingtop80 marginbottom30">
{% for member in project.team_id.members.all %}
{% if member.response_set.count > 0 %}
<div class="jumbotron greenback">
<h4>Welcome to the Project test "{{ project.name }}" Detail page</h4>
</div>
{% else %}
<div class="jumbotron greenback">
<h4>Welcome to the Project "{{ project.name }}" Detail page</h4>
</div>
{%endif%}
{% endfor %}
<div class="container paddingtop80 marginbottom30">
{% for member in project.team_id.members.all %}
{% if member.response_set.count > 0 %}
<div class="jumbotron greenback">
<h4>Welcome to the Project test "{{ project.name }}" Detail page</h4>
</div>
{% else %}
<div class="jumbotron greenback">
<h4>Welcome to the Project "{{ project.name }}" Detail page</h4>
</div>
{%endif%}
{% endfor %}
</div>
问题是,就像你现在可以看到我的jumbotron打印3次,因为我有3个成员。
如果响应存在或者> 0,我如何检查3个成员并且只打印一次jumbotron?
答案 0 :(得分:1)
我会在Project上定义一个方法来检查是否有任何成员的响应。类似的东西:
class Project(models.Model):
...
def has_member_responses(self):
return Response.objects.filter(member__team__project=self).exists()
现在,在您的模板中,您可以删除for循环,只需执行以下操作:
{% if project.has_member_responses %}