ObecnieDynamiczny wybór szablonu django znacznik włączenia
mam tag integracji, który jest zakodowany tak:
@register.inclusion_tag('forms/my_insert.html', takes_context=True)
def my_insert(context):
# set up some other variables for the context
return context
w swoim szablonie, I umieścić go poprzez umieszczenie w {% my_insert %}
Nowe żądanie funkcji
Teraz chcemy przetestować nowy układ - to tylko zmiana w szablonie, bez zmian zmiennych kontekstowych. Ja zrealizować to poprzez wywołanie pierwszego
@register.inclusion_tag('forms/my_new_insert.html', takes_context=True)
def my_new_insert(context):
return my_insert(context)
Aby użyć nowego szablonu, mam użyć:
{% ifequal some_var 0 %}
{% my_insert %}
{% endifequal %}
{% ifnotequal some_var 0 %}
{% my_new_insert %}
{% endifnotequal %}
Kwestii
Czy istnieje sposób, aby wybrać szablon w funkcji, która ustawia kontekst znacznika szablonu?
Wyobrażam może to być coś w rodzaju:
@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
ta nie działa, gdy próbowałem go. Nie widzę żadnego wskazania, że powinno to wynikać z dokumentacji, z którą się łączyłeś. – mqsoh
To działa dla mnie. Django 1.9 – Sharmila