任何使{%extends'...'%}有条件的方法? - Django

时间:2011-03-21 16:58:38

标签: python ajax django django-templates

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

有什么想法吗?

4 个答案:

答案 0 :(得分:122)

其他答案要求您传递其他上下文变量。但只要您可以访问请求对象,就没有必要:

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

我发现这样更方便。

答案 1 :(得分:83)

使用变量。

{% extends base_template %}

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

答案 2 :(得分:22)

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

P.S。我知道这是一个老问题,但我在寻找答案时找到了它。也许它会帮助其他人解决同样的问题。

答案 3 :(得分:7)

您可以使用{%extends variable%}

在视图中创建上下文时,传递变量基本模板名称。

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