2014-12-02 112 views
0

使用变量我有以下设置:Django的 - 从包含的模板

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位于不同的位置。

谢谢!

+0

您需要将所有必需的变量模板,包括来自视图模板处理。如果您要求调试目的,请使用_debug toolbar_。 – Rohan 2014-12-02 12:12:09

回答

0

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

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

注意,这样的事情 - 那就是,包括与一些特定的环境变量沿着模板 - 通常是最好的,因为一个inclusion tag