django模板中的if语句不正确

时间:2015-03-12 09:58:31

标签: python django templates if-statement django-templates

我想列出仍在进行中且已完成的作品清单。 完成所有工作后,“正在进行中”的工作清单将为空。 目前我有这个代码,但它很糟糕。因为当我完成所有工作后,会有一个标题为“进行中”。当所有的工作都在进行中时。

<h3>{% trans 'In progress' %}</h3>                        
{% for worked_on in worker.worked_on.all %}
    {% if worked_on.is_project_in_progress %}
       //Text here
    {% endif %}
{% endfor %}

我的模特:

class WorkerWorkedOnProduct(models.Model):
    worker = models.ForeignKey(Worker, verbose_name=_('Worker'), related_name='worked_on')
    description = models.TextField()
    is_project_in_progress = models.BooleanField(default=True)
    is_the_project_is_finished = models.BooleanField(default=False)

2 个答案:

答案 0 :(得分:0)

你应该使用

models.BooleanField(initial=True)

而不是'default',因为如果设置default = True,它将始终返回True。

答案 1 :(得分:0)

默认= True是好的,如果这是你想要的。实际上,你可能想在视图中解决这个问题。你可以做的一件事是获得一个正在进行的查询集&#39;工作并将其放在视图的模板上下文中。如果你这样做,你可以简单地测试它是否包含任何对象,例如{%if in_progress_stuff%} your_header {%endif%}