我有以下设置:
base.html文件
...
{% block main-content %}
{% endblock main-content %}
...
admin.html
{% extends "base.html" %}
{% load staticfiles %}
{% block main-content %}
{% include users.html %}
{% endblock main-content %}
user.html文件使用' {{users}}'等标签。因为它从一个也返回几个变量的视图中呈现。现在,如果我调用admin.html,我可以看到没有变量的users.html模板(基本的html,css)。我不认为模板是从我的views.py中呈现的。
无论如何我可以获得视图返回的变量吗?
注意:base.html和admin.html位于同一个django应用中,而users.html则位于不同的应用中。
谢谢!
答案 0 :(得分:0)
这似乎是一种常见的误解。
模板不属于视图。唯一的关系是视图可能(或可能不)呈现模板:但模板本身可能由一个或多个视图呈现,并且没有任何实际知识。因此,当您在管理模板中“包含”您的模板时,与任何其他可能也会呈现它的视图之间存在无关系;如果你在那个视图中需要一些变量,你需要自己传递它们。
请注意,这类事情 - 包括模板和一些特定的上下文变量 - 通常最好以inclusion tag
处理