我有一个编码像这样一个包含标签:
@register.inclusion_tag('forms/my_insert.html', takes_context=True)
def my_insert(context):
# set up some other variables for the context
return context
在我的模板,我包括它的投入{% my_insert %}
新功能要求
现在我们要测试一个新的布局 - 这只是对模板的更改,不更改上下文变量。我通过调用第一
@register.inclusion_tag('forms/my_new_insert.html', takes_context=True)
def my_new_insert(context):
return my_insert(context)
要使用新的模板实现这一点,我必须使用:
{% ifequal some_var 0 %}
{% my_insert %}
{% endifequal %}
{% ifnotequal some_var 0 %}
{% my_new_insert %}
{% endifnotequal %}
问题
有没有一种方法来选择模板在设置模板标签上下文的函数中?
我想象它可能是这样的:
@register.inclusion_tag('forms/my_insert.html', takes_context=True)
def my_insert(context):
# set up some other variables for the context
if context['some_var'] == 0:
context['template'] = 'forms/my_insert.html'
else:
context['template'] = 'forms/my_new_insert.html'
return context
当我试图这样没有工作。我没有看到任何迹象表明它应该在你链接的文档中。 – mqsoh 2013-12-05 18:40:03
这适用于我。 Django 1.9 – Sharmila 2016-07-24 02:05:17