如何在包含标记中使用自定义过滤器 - django

时间:2017-01-17 20:41:44

标签: django filter templatetags

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

1 个答案:

答案 0 :(得分: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" }}
    
  3. 如果您使用的是jinja2模板,则必须在Jinja2环境初始化中使用自定义过滤器。如果您仍然遇到问题,可以reference the django docs