我想在 AJAX 和常规 HTTP 调用之间共享一个模板,唯一的区别是一个模板需要扩展 base.html html,而另一个不需要。
我可以用
{% extends request.is_ajax|yesno:"app/base_ajax.html,app/base.html" %}
动态决定何时扩展,但我还需要包含{% block 'some_div' %}{% endbock %}
标签来告诉渲染器将我的内容放在哪里。ajax 调用需要忽略这些标签,因为 jQuery 告诉它在哪里放置$('somediv').html(response)
.
关于如何在不是 ajax 调用时动态包含这些块标签的任何想法?
我一直在参考这个问题来弄清楚:
有什么方法可以使 {% extends '...' %} 有条件?- 姜戈
尝试通过 {% if %} 使其工作:
{% extends request.is_ajax|yesno:",stamped/home.html" %}
{% if request.is_ajax == False%}
{% block results %}
{% endif %}
{% load stamped_custom_tags %}
...
Content
...
{% if request.is_ajax == False%}
{% endblock %}
{% endif %}
但是当解析器遇到 {% endif %}