如果对象为空,如何在模板中显示按钮?

时间:2017-04-27 03:57:21

标签: python html django python-3.x django-1.10

有人可以说我错了吗?

我有两个模型:项目和目的。

class Purpose(models.Model):
    code = models.UUIDField(_('Code'), primary_key=True, default=uuid.uuid4, editable=False)
    project = models.ForeignKey(Project, on_delete=models.CASCADE)
    text = models.TextField(_('Text'))
    comments = models.ManyToManyField("Comment")

每个项目只有一个目的。因此,在project_detail页面中,我只想在该项目没有任何其他目的对象时显示purpose_add按钮。当没有具有相同project_code的目标对象时,为什么我看不到按钮?

views.py:

def project_detail(request, project_code):
 ***
 purpose_is_not_exist = Purpose.objects.exclude(project=project_code).exists()
 ***

project_detail.html:

{% if purpose_is_not_exist %}
   <button id="purpose-add-button"></button>
{% endif %}

2 个答案:

答案 0 :(得分:1)

with open(a_file, 'r') as my_file:
    for line in my_file:
        line_number += 1
        if line_number == 1060 or line_number == 1061:
            print(line)

你应该否定虚假布尔。

答案 1 :(得分:1)

混淆是由变量名purpose_is_not_exist引起的。

Purpose.objects.exclude(project=project_code).exists()

上面的语句返回Purpose对象是否存在。您应将变量重命名为purpose_exists以避免混淆。

并且,在模板中当你想要添加按钮时,如果它不存在则取消变量:

{% if not purpose_exists %}

或者,如果您想继续使用变量的原始名称,那么只需在视图中否定。

purpose_is_not_exist = not Purpose.objects.exclude(project=project_code).exists()