2013-07-23 16 views
-1

視圖功能如下:這個變量在Django中如何傳入模板?

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

因爲你使用'locals'看起來你應該聲明'user'爲本地:'myUser = request.user' – danihp

+0

@danihp謝謝!但我對此仍不太清楚。有沒有關於這個的文件? –

回答

3

它通過,因爲您使用RequestContext()傳遞一些默認上下文變量。 其中之一是user通過auth context processor

RequestContext()被使用,傳遞一些默認的上下文變量。

Requestcontext is here的更多詳細信息。