我正在尝试编写一个自定义过滤器,用于检索我在模板中使用的对象列表。到目前为止我已经:
@register.filter
def get_my_object_list(user):
return some list after processing
在模板中:
{% for page in request.user|get_pages_with_no_menu %}
Some rendering here.
{% endfor %}
现在这很好用,这可能听起来很傻,但我找不到解决方案。我真的不需要该过滤器中的用户,所以我希望没有任何参数。这是可能的,我如何从模板中调用它?
由于
答案 0 :(得分:4)
您实际需要的不是模板过滤器,而是assignment tag。它允许您为变量赋值,然后例如。迭代它:
@register.assignment_tag(takes_context=True)
def get_pages_with_no_menu(context):
# do some fancy stuff here
return pages_with_no_menu
然后你可以在模板中使用它,如:
{% get_pages_with_no_menu as pages %}
{% for page in pages %}
Some rendering here.
{% endfor %}