【问题标题】:Can I filter records I loop through in for loop? Python Template我可以过滤我在 for 循环中循环的记录吗? Python 模板
【发布时间】:2017-06-25 12:35:24
【问题描述】:

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

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

现在这对于遍历我的项目列表中的所有记录非常有用,但我想添加一个过滤器,例如,假设我的项目有一个价格,我只想遍历价格为的项目 > 5.我怎样才能做到这一点?有没有办法像 if 语句那样进行切片?

我尝试了类似的方法,但没有奏效”

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

感谢您的帮助!

【问题讨论】:

    标签: html django templates django-templates


    【解决方案1】:

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

    定义一个模型方法。

    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 %}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-02-05
      • 1970-01-01
      • 1970-01-01
      • 2021-11-08
      • 1970-01-01
      • 2013-02-01
      • 1970-01-01
      • 2021-12-28
      相关资源
      最近更新 更多