如何将data_dictionary始终保留在模板中? (也许不是正确的问题)。 用户应始终进行身份验证 解释: 这是所有其他模板扩展的基本模板。无法从所有其他模板向base.html发送数据,以便if语句可以正常工作。通过阅读base.html可以理解前端部分。该应用程序的所有其他模板将显示在上下文中,并且在右侧栏中,可以查看用户是否登录或进行某些操作。但是我无法到达那里。有效的唯一网址是/ loggedin。您是否有想法如何使此计划有效?它的东西非常简单,但我不能用django到达那里。我被告知没有理由使用SESSIONS进行用户身份验证。需要帮忙。 Plz很简单,因为你可以看到我是Django和python的菜鸟。 谢谢。
base.html:
<body>
<div id="page">
<div id="sidebar">
{% block sidebar %}
<ul>
<li><a href="/notes/all">Notes</a></li>
</ul>
{% endblock %}
</div>
<div id="rightsidebar">
{% block rightsidebar %}
{% if request.user.is_authenticated %}
Loggedin
{% else %}
Not Loggedin
{% endif %}
{% endblock %}
</div>
<div id="content">
{% block content %}This is the content area{% endblock %}
</div>
</body>
Views.py: ....
def loggedin(request):
my_data_dictionary = {}
return render_to_response('base.html',
my_data_dictionary,
context_instance=RequestContext(request))
...
答案 0 :(得分:0)
我认为你应该深入了解自己的context processor
同样在view.py
中def loggedin(request):
my_data_dictionary = {}
return render_to_response('base.html',
my_data_dictionary,
context_instance=RequestContext(request))
将此“my_data_dictionary”添加到var:{{value}}和{{user.username}}更多信息authentication
答案 1 :(得分:0)
确保这在您的设置中:
TEMPLATE_CONTEXT_PROCESSORS = (
"django.contrib.auth.context_processors.auth",
....
您可以在模板中使用{%if user.is_authenticated%}和{{user.username}}。
答案 2 :(得分:0)
我想办法做到这一点。我使用会话来永久存储my_data_dictionary,但是任何视图args.So现在我可以在我想要的任何视图中获取它并将其渲染回任何视图 - &gt;扩展base.html的模板,而不是同一模板中的特殊性。 [解决]
views.py.def_loggedin
def loggedin(request):
my_data_dictionary = {}
request.session['my_data_dictionary '] = my_data_dictionary <----------------------
return render_to_response('loggedin.html',
my_data_dictionary,
context_instance=RequestContext(request))
任何其他观点。
def notes(request):
language = 'en-us'
if 'lang' in request.COOKIES:
language = request.COOKIES['lang']
args = {}
args.update(csrf(request))
args['notes'] = Note.objects.all()
args['language'] = language
args['my_data_dictionary'] = request.session['my_data_dictionary '] <-------
return render_to_response('notes.html',
args,
context_instance=RequestContext(request)) <---------