擅长:python、mysql、java
<p>虽然不能将<code>extends</code>包装在逻辑块中,但如果使用它,它必须是第一个标记,因此仍然可以接受变量,包括筛选器。这应该很符合你的目的:</p>
<pre class="lang-vhdl prettyprint-override"><code>{% extends ajax|yesno:"base_ajax.html,base.html" %}
{# stuff #}
</code></pre>
<p>注意:<code>yesno</code>过滤器也接受空值(<code>None</code>)作为第三个选项,如果您不指定一个(在本例中),它将回退到将其转换为<code>False</code>(即,它将返回第二个选项)。这允许您在模板中不指定<code>ajax</code>变量而不破坏它。</p>
<hr/>
<p>建议由<a href="https://stackoverflow.com/users/1798089/rafael">user Rafael</a>:</p>
<pre class="lang-vhdl prettyprint-override"><code>{% extends request.is_ajax|yesno:"base_ajax.html,base.html" %}
{# stuff #}
</code></pre>
<p>只有在使用<code>RequestContext</code>上下文而不是普通的<code>Context</code>对象并且启用了<code>request</code>上下文处理器时,或者在模板上下文中插入请求对象时,这才有效。</p>