django 自定义模板标签,传递多个参数
django custom template tag, pass multiple arguments
我需要能够将多个参数传递给自定义模板标签。我不知道该怎么做,但我在某处看到过这样的例子。如果您有想法,是否可以通过某种方式实现?
template
{% for right in people_rights|user_available_rights:rooms, user.id %}
{{right.room}}
{% endfor %}
template tag
def user_available_rights(rights, rooms, user_id):
available_rights = []
user_rooms = []
for right in rights:
if right.user.id == user_id:
user_rooms.append(right.room)
for room in rooms:
for ur in user_rooms:
if room.id != ur.id:
available_rights.append(room)
return available_rights
您可以像这样使用 simple_tag
将多个参数传递给您的自定义标签:
from django import template
register = template.Library()
@register.simple_tag
def tag_name(arg1, arg2, arg3):
return
然后您可以通过
在您的模板中使用这个标签
{% tag_name 'foo' 'bar' 'baz' %}
我需要能够将多个参数传递给自定义模板标签。我不知道该怎么做,但我在某处看到过这样的例子。如果您有想法,是否可以通过某种方式实现?
template
{% for right in people_rights|user_available_rights:rooms, user.id %}
{{right.room}}
{% endfor %}
template tag
def user_available_rights(rights, rooms, user_id):
available_rights = []
user_rooms = []
for right in rights:
if right.user.id == user_id:
user_rooms.append(right.room)
for room in rooms:
for ur in user_rooms:
if room.id != ur.id:
available_rights.append(room)
return available_rights
您可以像这样使用 simple_tag
将多个参数传递给您的自定义标签:
from django import template
register = template.Library()
@register.simple_tag
def tag_name(arg1, arg2, arg3):
return
然后您可以通过
在您的模板中使用这个标签{% tag_name 'foo' 'bar' 'baz' %}