В настоящее время
У меня есть тег включения, который закодирован примерно так:
@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 %}
Вопрос
Есть ли способ выбрать шаблон в функции, которая устанавливает контекст тега шаблона?
I представьте это может быть что-то вроде:
@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