我可以过滤循环中的循环记录吗? Python模板

时间:2017-02-08 02:57:06

标签: html django templates django-templates

目前,我在我的Django模板中使用了一个for循环:

{% for item in itemlist.items.all %}
   <!-- do something -->
{% endfor %}

现在这非常适合循环浏览我的项目列表中的所有记录,但我想添加一个过滤器,例如,让我们说我的项目有价格,我想只循环遍历项目价格> 5。我怎样才能做到这一点?有没有像if语句一样切片的方法?

我尝试过这样的事情但是没有工作&#34;

{% for item in itemlist.items.all|price > 5 %}

感谢您的帮助!

1 个答案:

答案 0 :(得分:3)

您可以在模型中执行此操作。

定义模型方法。

class ItemList(models.Model):
     field1 = models.CharField(...)

     def get_items(self):
          return self.items.filter(price__gt = 5)

在您的模板中,您可以执行以下操作。

{% for item in itemlist.get_items %}
   <!-- do something -->
{% endfor %}