嗨,我正在编写一个 django 项目,我编写的模板代码如下:
<ul id="nav">
<li><a href="/">Home</a></li>
<li><a href="/user/">Users</a></li>
{% if user %}
<li><a href="/user/{{ user.id }}/">Settings</a></li>
<li><a href="/logout/">Log Out</a></li>
{% else %}
<li><a href="/login/">Log In</a></li>
<li><a href="/signup/">Sign Up</a></li>
{% endif %}
</ul>
现在在登录视图中我这样写:
def login(request):
if user_logged_in(request):
return redirect('/')
if request.method == 'GET':
form = LogInForm()
return render_to_response(LOGIN_PATH, {'form':form}, context_instance=RequestContext(request))
但是当我运行服务器时,没有用户登录,并访问登录页面,它显示设置和注销(上下文中有一个用户对象),但它不应该!
如果我删除 RequestContext,说 return render_to_response(LOGIN_PATH, {'form':form}),就可以了。和
return render_to_response(LOGIN_PATH, {'form':form, 'user':None}, context_instance=RequestContext(request))
也可以。但我不想这样做。
我知道这是肮脏的设计,嗯......我正在寻找建议和解决方案。非常感谢~!