【问题标题】:How do I use Django's template extends variable?如何使用 Django 的模板扩展变量?
【发布时间】:2010-11-22 19:14:23
【问题描述】:

django template doc 提到以下扩展模板:

{% extends variable %}

我在哪里定义变量?是来自views.py吗?

【问题讨论】:

    标签: django django-templates


    【解决方案1】:

    {% extends %} 实际上接受一个字符串——要扩展的模板的位置。

    如果您想在 Python 中声明此变量,请使用您的字典将其传递给模板加载器。示例:

    import django.http
    from django.shortcuts import render_to_response
    # ...
    INDEX_EXTEND = "index.html"
    # ...
    def response(request) :
        return render_to_response("myview.html", {'extend': INDEX_EXTEND})
    

    然后在视图中:

    {% extends extend %}
    

    注意'extend' 是在传递给模板的字典中传递的。您当然可以在 .py 文件中的任何其他位置定义变量 - 甚至在字典声明本身中。

    请记住,{% extends %} 也可以这样调用:

    {% extends "index.html" %}
    

    也可以查看Template inheritance 上的文档。

    【讨论】:

      【解决方案2】:

      是的,它只是一个和其他变量一样的上下文变量。

      您不需要使用变量 - {% extends "main.html" %} 完全可以接受,实际上更可取,除非您需要使用模板继承进行大规模动态操作。

      【讨论】:

        猜你喜欢
        • 2010-11-27
        • 1970-01-01
        • 2018-06-09
        • 2013-06-13
        • 2016-02-23
        • 2019-01-06
        • 1970-01-01
        相关资源
        最近更新 更多