如何在 Django 自定义过滤器中有两个参数
How to have two arguments in a django custom filter
我正在尝试操纵两个对象进行计算,但出现错误:“过滤器无效”
在 html 前端我有一个嵌套循环对象:单位和人如下:
{{units|myFilter:person}}
其中单位有多个对象,而人只有一个。
我的过滤器定义为:
def myFilter(units,person):
n = 0
for i in units:
if i.name == person.name:
n = n + 1
return n
但是它不起作用,请问有什么想法或建议吗?
您可以注册一个 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
我正在尝试操纵两个对象进行计算,但出现错误:“过滤器无效”
在 html 前端我有一个嵌套循环对象:单位和人如下:
{{units|myFilter:person}}
其中单位有多个对象,而人只有一个。
我的过滤器定义为:
def myFilter(units,person):
n = 0
for i in units:
if i.name == person.name:
n = n + 1
return n
但是它不起作用,请问有什么想法或建议吗?
您可以注册一个 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