Как иметь два аргумента в пользовательском фильтре django
Я пытаюсь манипулировать двумя объектами для расчета, однако получаю ошибку: "Invalid 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
Но он не работает, есть идеи или предложения, пожалуйста?
<
Вернуться на верх
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