AJAXと通常のHTTP呼び出しの間でテンプレートを共有したいのですが、唯一の違いは、1つのテンプレートがbase.html htmlで提供され、もう1つのテンプレートは提供されないことです。
何か案が?
変数を使用します。
{% extends base_template %}
ビューで、それをビューの「base.html」に設定するか、ブロックのみを提供し、他には何も提供しない新しい「ajax.html」ファイルを設定します。
他の回答では、追加のコンテキスト変数を渡す必要があります。ただし、リクエストオブジェクトにアクセスできる限り、必要はありません。
{% extends request.is_ajax|yesno:"app/base_ajax.html,app/base.html" %}
これははるかに便利だと思いました。
{% extends override_base|default:'base.html' %}
追伸これは古い質問であることは知っていますが、回答を検索しているときに見つかりました。多分それは同じ問題を持つ他の誰かを助けるでしょう。
{%extends variable%}を使用できます
ビューでコンテキストを作成するときに、変数のベーステンプレート名を渡します。
http://docs.djangoproject.com/en/dev/ref/templates/builtins/?from=olddocs#extends