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

前端 未结 4 752
长发绾君心
长发绾君心 2020-11-27 04:21

I would like to share a template between AJAX and regualr HTTP calls, the only difference is that one template needs to be served with the base.html html, the other one with

相关标签:
4条回答
  • 2020-11-27 04:42

    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.

    0 讨论(0)
  • 2020-11-27 04:48

    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 讨论(0)
  • 2020-11-27 04:55

    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.

    0 讨论(0)
  • 2020-11-27 04:57
    {% 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.

    0 讨论(0)
提交回复
热议问题