开发者

Any way to make {% extends '...' %} conditional? - Django

I would like to share a template between AJAX an开发者_运维问答d regualr HTTP calls, the only difference is that one template needs to be served with the base.html html, the other one without.

Any idea?


The other answers require you to pass an additional context variable. But as long as you can access the request object, there is no need:

{% extends request.is_ajax|yesno:"app/base_ajax.html,app/base.html" %}

I found this to be much more convenient.


Use a variable.

{% extends base_template %}

and in your view, set it to "base.html" in your view, or a new "ajax.html" file which just provides the block and nothing else.


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

P.s. I know this is an old question, but I found it when searching for an answer. Maybe it'll help someone else with the same problem.


You can use {% extends variable %}

Pass a variable base template name in when you create the context in the view.

http://docs.djangoproject.com/en/dev/ref/templates/builtins/?from=olddocs#extends

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜