如何在自定义模板标签上使用模板过滤器?

2024-04-05

我有一个关于模板标签的 Django 问题。我有一个名为的模板标签modal_form有 4 个参数。该模板标签与基本变量完美配合,例如:

{% modal_form "clients" contact_form "Contacts" "contact" %}

但当我尝试过滤自​​定义模板标签内的变量时,它不起作用,例如:

{% modal_form "parameters" form_dict|key:parameter parameter name_dict|key:parameter %}

这个自定义过滤器也可以在标签之外完美工作(该过滤器获取特定键处的字典的值)。 我有这个错误:

渲染时捕获 VariableDoesNotExist:查找键失败 [form_dict|键:参数]

也许我必须以不同的方式编写标签来支持内部过滤器?

这是我的标签代码:

def modal_form(app, object_form, object_name, object_verbose_name):
    return { 'app': app, 'object_form': object_form, 'object_name': object_name, 'object_verbose_name': object_verbose_name }

register.inclusion_tag('tags/modal_form.html')(modal_form)

我的过滤器代码:

def key(d, key_name):
    try:
        value = d[key_name]
    except KeyError:
        #from django.conf import settings

        #value = settings.TEMPLATE_STRING_IF_INVALID
        value = 0

    return value
key = register.filter('key', key)

你有什么想法 ?您想要更多代码吗?

预先感谢您的回答。


如果您的标签和过滤器单独工作正常,请尝试使用有声明 https://docs.djangoproject.com/en/1.4/ref/templates/builtins/#with:

{% with var_one=form_dict|key:parameter var_two=name_dict|key:parameter %}
    {% modal_form "parameters" var_one parameter var_two %}
{% endwith %}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在自定义模板标签上使用模板过滤器? 的相关文章

随机推荐