我有关于模板标签的django问题。我有一个名为modal_form
的模板标签,带有4个参数。此模板标记与基本变量完美配合,如:
{% modal_form "clients" contact_form "Contacts" "contact" %}
但是当我尝试过滤自定义模板标记内的变量时,它不起作用,如:
{% modal_form "parameters" form_dict|key:parameter parameter name_dict|key:parameter %}
此自定义过滤器也完全在标记之外工作(此过滤器获取特定键的dict值)。 我有这个错误:
渲染时捕获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)
你有什么想法吗?你想要更多代码吗?
提前感谢您的回答。
答案 0 :(得分:7)
如果您的代码和过滤条件分别正常,请尝试使用with statement:
{% with var_one=form_dict|key:parameter var_two=name_dict|key:parameter %}
{% modal_form "parameters" var_one parameter var_two %}
{% endwith %}