【问题标题】:how to use custom filter within inclusion tag - django如何在包含标签中使用自定义过滤器 - django
【发布时间】:2017-01-17 20:41:43
【问题描述】:

我想在 django 1.10 的包含标签内使用自定义过滤器,但每当我尝试时都会收到错误 Invalid filter:'my_filter' 该过滤器允许我通过键访问字典并返回一个值。过滤器和包含标签本身可以正常工作。有人可以帮忙吗?

【问题讨论】:

  • 我们需要查看您的代码以了解为什么这不适合您。过滤器和模板的代码就足够了。

标签: django filter templatetags


【解决方案1】:

如果您无法访问您的过滤器,通常有两个罪魁祸首。

  1. 您尚未注册过滤器

    # make sure that your filter is registered
    from django import template
    
    register = template.Library()
    
    @register.filter
    def lookup_by_key(value, arg):
        return value[arg]
    
  2. 您忘记在模板中加载过滤器。

    # e.g., Your custom filter is in app_name/templatetags/my_filters.py
    {% load my_filters %}
    {{ my_value | lookup_by_key:"6" }}
    

如果您使用 jinja2 模板,则必须在 Jinja2 环境初始化时使您的自定义过滤器可用。如果还有问题,可以reference the django docs

【讨论】:

  • 你说得对——我必须在模板中加载过滤器,而我认为我只需要在包含模板的页面上加载它。谢谢!
猜你喜欢
  • 2011-01-06
  • 2011-01-23
  • 1970-01-01
  • 1970-01-01
  • 2012-12-22
  • 2023-03-29
  • 1970-01-01
  • 1970-01-01
  • 2020-11-07
相关资源
最近更新 更多