【问题标题】:Django - Use variables from included templateDjango - 使用包含模板中的变量
【发布时间】:2014-12-02 12:02:25
【问题描述】:

我有以下设置:

base.html

...
    {% block main-content %}
    {% endblock main-content %}
...

admin.html

{% extends "base.html" %}
{% load staticfiles %}

{% block main-content %}
    {% include users.html %}
{% endblock main-content %}

文件 users.html 使用像“{{ users }}”这样的标签,因为它从一个也返回多个变量的视图呈现。现在,如果我调用 admin.html,我可以看到 users.html(基本 html、css)的模板没有变量。我认为模板不是从我的 views.py 呈现的。

无论如何我可以获得视图返回的变量吗?

注意:base.html 和 admin.html 在同一个 django 应用中,而 users.html 在不同的应用中。

谢谢!

【问题讨论】:

  • 您需要将所有必需的变量传递给模板,并从视图中包含模板。如果您要求调试目的,请使用 调试工具栏

标签: html django templates include


【解决方案1】:

这似乎是一种常见的误解。

模板不属于视图。唯一的关系是视图可能(或可能不)呈现模板:但模板本身可能由一个或多个视图呈现,并且对它们中的任何一个都不实际了解。因此,当您在管理模板中“包含”您的模板时,与可能呈现它的任何其他视图都没有关系;如果您需要该视图中的一些变量,您需要自己将它们传递给那里。

请注意,这类事情 - 即包括模板以及一些特定的上下文变量 - 通常最好作为 inclusion tag 处理

【讨论】:

    猜你喜欢
    • 2015-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-03
    • 2020-01-06
    • 2011-12-18
    相关资源
    最近更新 更多