【问题标题】:How to have two arguments in a django custom filter如何在 django 自定义过滤器中有两个参数
【发布时间】:2022-01-06 04:43:28
【问题描述】:

我试图操纵两个对象进行计算,但是我收到错误:“无效过滤器”

在 html 前端我有一个包含对象的嵌套循环:单位和人员如下:

{{units|myFilter:person}}

其中单位有多个对象,而人只有一个。

我的过滤器定义为:

def myFilter(units,person):
    n = 0
    for i in units:
        if i.name == person.name:
            n = n + 1
    return n

但它不起作用,请问有什么想法或建议吗?

【问题讨论】:

标签: python django django-custom-tags


【解决方案1】:

您可以注册一个simple_tag 函数,该函数接受任意数量的位置或关键字参数;

from django import template

register = template.Library()

@register.simple_tag
def my_tag(a, b):
    print(a, b)

    return 'What you need'

这是在你的模板中使用它的方法;

{% my_tag 123 "abcd" %}

这是文档; https://docs.djangoproject.com/en/1.8/howto/custom-template-tags/#simple-tags

【讨论】:

    猜你喜欢
    • 2013-02-16
    • 2013-07-20
    • 2020-12-18
    • 2016-07-01
    • 2021-06-21
    • 2018-07-31
    • 1970-01-01
    • 2013-01-15
    • 1970-01-01
    相关资源
    最近更新 更多