视图功能如下所示:
def stats(request):
"""the stats page"""
sidebarURLs = [reverse(p) for p in _sidebarPages]
sidebar = zip(_sidebarPages, sidebarURLs, _sidebarNames)
currpage = "dcstats"
return render_to_response('datacollection/dcstats.html',
locals(),
context_instance=RequestContext(request))
模板文件如下:
{% extends "datacollection/login_base.html" %}
{% load dc_extras %}
{% block title %} {% endblock %}
{% block include %}
{% endblock %}
{% block onload %}
onload="init();"
{% endblock %}
{% block content %}
{% endblock %}
{% block sidebar %}
<nav>
<ul>
{% for pg, url, name in sidebar %}
{% ifequal currpage pg %}
<li>{{name}}</li>
{% else %}
<li><a href="{{url}}">{{name}}</a></li>
{% endifequal %}
{% endfor %}
</ul>
</nav>
{% if user.is_staff %}
<p> {{ user.is_staff }} </p>
<nav>
<h3>Admin:</h3>
<ul>
<li><a href="{% url report %}">Weekly Report</a></li>
<li><a href="{% url weekly_papers %}">Weekly Papers</a></li>
<li><a href="{% url weekly_datasets %}">Weekly Datasets</a></li>
<li><a href="{% url admin %}">Admin</a></li>
<li><a href="{% url teams %}">Teams</a></li>
<li><a href="{% url submissions_admin %}">Paper Submissions</a></li>
<li><a href="{% url admin_help %}">Help</a></li>
</ul>
</nav>
{% endif %}
{% endblock %}
我不明白的是模板文件最后的变量user
,它在视图函数stats
中找不到,它如何传递到模板中?有没有人有这个想法?谢谢
答案 0 :(得分:3)
它被传递是因为您使用RequestContext()
传递一些默认的上下文变量。
其中一个是user
通过auth context processor。
RequestContext()
,传递一些默认的上下文变量。
Requestcontext is here的更多细节。