2017-04-27 18 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() 
相關問題