没有参数的django过滤器

标签 django

我正在尝试编写一个自定义过滤器来检索我然后在模板中使用的对象列表。到目前为止,我有:

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

现在这工作正常,这可能听起来很傻,但我找不到解决方案。我真的不需要该过滤器中的用户,所以我不希望它有任何参数。这可能吗,我如何从模板中调用它?

谢谢

最佳答案

您实际要找的不是模板过滤器,而是 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 %}

关于没有参数的django过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17126297/

相关文章:

django - 在 Celery 中检索任务的结果

python - 如何在 Django 聚合查询的 GROUP BY 子句中正确包含列?

django - 在生产中无法本地化模型表单字段名称

django - 如何使用 max(date) 值过滤查询

python - Django ORM 优化 - 按计数以及注释过滤器的最后一个条目进行注释

python - Django ModelAdmin 中的 "list_display"可以显示 ForeignKey 字段的属性吗?

javascript - Django 减少模板渲染时间

Django,如何在更新表单 View 中包含预先存在的数据

python - 用于 Django 或 Python 的 Ninja-IDE

python - Django 创建对象 - 使用 None 的默认值