【问题标题】:django custom template tag, pass multiple argumentsdjango自定义模板标签,传递多个参数
【发布时间】:2021-09-04 14:25:07
【问题描述】:

我需要能够将多个参数传递给自定义模板标签。我不知道该怎么做,但我在某处看到过这样的例子。如果你有这个想法,是否有可能以某种方式做到这一点?

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

【问题讨论】:

  • 您在 html 中添加上下文并在模板中传递多个参数

标签: python django django-templates tags


【解决方案1】:

您可以像这样使用simple_tag 将多个参数传递给您的自定义标签:

from django import template
register = template.Library()

@register.simple_tag
def tag_name(arg1, arg2, arg3):
   return 

然后你就可以在你的模板中使用这个标签了

{% tag_name 'foo' 'bar' 'baz' %}

【讨论】:

    猜你喜欢
    • 2011-06-17
    • 2014-03-04
    • 2011-10-12
    • 2021-06-05
    • 2014-07-14
    • 2019-05-02
    • 1970-01-01
    • 2023-03-24
    • 1970-01-01
    相关资源
    最近更新 更多