AJAX と通常の HTTP 呼び出しの間でテンプレートを共有したいと思います。唯一の違いは、一方のテンプレートは base.html html を拡張する必要があり、もう一方のテンプレートは拡張しないことです。
使うことができます
{% extends request.is_ajax|yesno:"app/base_ajax.html,app/base.html" %}
いつ拡張するかを動的に決定するためですが{% block 'some_div' %}{% endbock %}
、コンテンツを配置する場所をレンダラーに伝えるタグも含める必要があります。jQuery は .xml を使用してコンテンツを配置する場所を指示するため、ajax 呼び出しではこれらのタグを省略する必要があります$('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 %} に遭遇すると、これは失敗します