2017-04-27 29 views
0

有人可以说我犯错了吗?如何在模板中显示按钮,如果对象是空的?

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

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") 

每个项目只有一个目的。所以在​​页面,我只想显示purpose_add按钮,如果该项目没有任何其他目的对象。为什么我没有看到按钮时没有Purpose对象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 %} 

回答

1
{% if not purpose_is_not_exist %} 

你应该否定假布尔。

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() 
相关问题