如果对象为空,如何在模板中显示按钮?
How in template show button if object is empty?
有人能说说我错在哪里吗?
我有 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")
每个项目只有一个目的。因此,在 project_detail
页面中,我只想在该项目没有任何其他目的对象时显示 purpose_add
按钮。当没有具有相同 project_code
的 Purpose 对象时,为什么我看不到按钮?
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 %}
{% if not purpose_is_not_exist %}
你应该否定 False 布尔值。
混淆是变量名purpose_is_not_exist
造成的。
Purpose.objects.exclude(project=project_code).exists()
以上语句returns是否存在Purpose
对象。您应将变量重命名为 purpose_exists
以避免混淆。
而且,在模板中,当您想添加按钮时,如果它不存在则取反变量:
{% if not purpose_exists %}
或者,如果您想继续使用变量的原始名称,则只需在视图本身中取反即可。
purpose_is_not_exist = not Purpose.objects.exclude(project=project_code).exists()
有人能说说我错在哪里吗?
我有 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")
每个项目只有一个目的。因此,在 project_detail
页面中,我只想在该项目没有任何其他目的对象时显示 purpose_add
按钮。当没有具有相同 project_code
的 Purpose 对象时,为什么我看不到按钮?
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 %}
{% if not purpose_is_not_exist %}
你应该否定 False 布尔值。
混淆是变量名purpose_is_not_exist
造成的。
Purpose.objects.exclude(project=project_code).exists()
以上语句returns是否存在Purpose
对象。您应将变量重命名为 purpose_exists
以避免混淆。
而且,在模板中,当您想添加按钮时,如果它不存在则取反变量:
{% if not purpose_exists %}
或者,如果您想继续使用变量的原始名称,则只需在视图本身中取反即可。
purpose_is_not_exist = not Purpose.objects.exclude(project=project_code).exists()