Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 有没有办法使{%extends';..';%}有条件德扬戈_Python_Ajax_Django_Django Templates - Fatal编程技术网

Python 有没有办法使{%extends';..';%}有条件德扬戈

Python 有没有办法使{%extends';..';%}有条件德扬戈,python,ajax,django,django-templates,Python,Ajax,Django,Django Templates,我想在AJAX和regualr HTTP调用之间共享一个模板,唯一的区别是一个模板需要与base.html一起提供,另一个模板不需要 有什么想法吗?使用变量 {% extends base_template %} 在您的视图中,将其设置为视图中的“base.html”,或者设置一个新的“ajax.html”文件,该文件只提供块而不提供其他内容。您可以使用{%extends variable%} 在视图中创建上下文时传入变量基模板名称 其他答案要求您传递一个额外的上下文变量。但只要您可以访问请求

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

有什么想法吗?

使用变量

{% extends base_template %}

在您的视图中,将其设置为视图中的“base.html”,或者设置一个新的“ajax.html”文件,该文件只提供块而不提供其他内容。

您可以使用{%extends variable%}

在视图中创建上下文时传入变量基模板名称


其他答案要求您传递一个额外的上下文变量。但只要您可以访问请求对象,就不需要:

{% extends request.is_ajax|yesno:"app/base_ajax.html,app/base.html" %}
我觉得这样更方便

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

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

有没有办法以类似的动态方式包含
{%block'someblock%}
呢?非常方便,我们正在进行a/B测试并推出新的UI,而可变路径将导致大量工作。回答这个问题时,您应该得到绿色的检查。这解决了django压缩机的脱机压缩问题。@TheoKouzelis它是如何解决压缩问题的?据我所知,在这种情况下,
django compressor
将为
app/base.html
案例创建缓存,但不会为
app/base_ajax.html
创建缓存,在尝试加载缓存模板时(生成的脱机清单中没有键)。一个问题是:这会中断django compressor的脱机压缩。