Ответ 1
Используйте переменную.
{% extends base_template %}
и, на ваш взгляд, установите его в "base.html" в вашем представлении или новый файл "ajax.html", который просто предоставляет блок и ничего больше.
Я хотел бы поделиться шаблоном между AJAX и regualr HTTP-вызовами, единственное различие заключается в том, что один шаблон нужно обслуживать с base.html html, а другой без него.
Любая идея?
Используйте переменную.
{% extends base_template %}
и, на ваш взгляд, установите его в "base.html" в вашем представлении или новый файл "ajax.html", который просто предоставляет блок и ничего больше.
Другие ответы требуют, чтобы вы передали дополнительную переменную контекста. Но до тех пор, пока вы можете получить доступ к объекту запроса, нет необходимости:
{% extends request.is_ajax|yesno:"app/base_ajax.html,app/base.html" %}
Я нашел, что это намного удобнее.
{% extends override_base|default:'base.html' %}
P.s. Я знаю, что это старый вопрос, но я нашел его при поиске ответа. Возможно, это поможет кому-то еще с той же проблемой.
Вы можете использовать {% extends variable%}
Передайте имя базового шаблона переменной при создании контекста в представлении.
http://docs.djangoproject.com/en/dev/ref/templates/builtins/?from=olddocs#extends