我想在AJAX和常规HTTP调用之间共享一个模板,唯一的区别是,一个模板需要与base.html html一起提供,而另一个则不需要。
任何想法?
Answers:
其他答案要求您传递一个附加的上下文变量。但是只要您可以访问请求对象,就不需要:
{% extends request.is_ajax|yesno:"app/base_ajax.html,app/base.html" %}
我发现这更加方便。
{% block 'someblock' %}
什么类似的动态方式可以包含吗?
django-compressor
将为这种情况创建一个缓存,app/base.html
但不会为app/base_ajax.html
尝试加载缓存的模板(在生成的脱机清单中没有键)的情况下失败而创建缓存。
您可以使用{%扩展变量%}
在视图中创建上下文时,传递一个可变的基本模板名称。
http://docs.djangoproject.com/en/dev/ref/templates/builtins/?from=olddocs#extends