防止在django模板中多次点击数据库

时间:2015-01-27 21:43:47

标签: django

我有我的模型任务

class Task(models.Model):
    member = models.ForeignKey(Member)
    ...

以及我的模特会员,来自认证...

class Member(AbstractBaseUser):
    ...
    def get_num_tasks(self):
        return self.task_set.all().count()

最后我有这样的模板,我想显示有多少任务得到了这个成员......但是如果它大于零则再添加一个类......

<p {% if user.get_num_tasks > 0 %} class="green" {% endif %}>{{ user.get_num_tasks }}</p>

这里的问题是,每次加载我的模板时,它会两次点击数据库,一次检查是否大于零,还有一次用于显示数字......

我该如何避免这种情况?

1 个答案:

答案 0 :(得分:1)

您可以使用with tag

{% with task_count=user.get_num_tasks %}
    <p {% if task_count > 0 %} class="green" {% endif %}>{{ task_count }}</p>
{% endwith %}
  

编辑:我必须删除之前和之后的空格   分配(task_count = user.get_num_tasks),否则崩溃。