任何方式使{%extend'…'%}条件化? – Django

我想在AJAX和regualr HTTP调用之间共享一个模板,唯一的区别是一个模板需要用base.html html,另外一个不需要。

任何想法?

使用一个variables。

{% extends base_template %} 

并在您的视图中,将其设置为您的视图中的“base.html”或一个新的“ajax.html”文件,只提供该块,没有别的。

其他答案要求你传递一个额外的上下文variables。 但只要你可以访问请求对象,就没有必要:

 {% extends request.is_ajax|yesno:"app/base_ajax.html,app/base.html" %} 

我发现这样更方便。

 {% extends override_base|default:'base.html' %} 

Ps我知道这是一个古老的问题,但我find答案时find答案。 也许它会帮助其他人有同样的问题。

你可以使用{%extends variable%}

在视图中创build上下文时传递可变基本模板名称。

http://docs.djangoproject.com/en/dev/ref/templates/builtins/?from=olddocs#extends