@csrf_protect
def loginn(request):
c = {}
c.update(csrf(request))
return render_to_response("login/login.html",c)
@csrf_protect
def auth_view(request):
username = request.POST.get('username', '')
password = request.POST.get('password', '')
user = authenticate(username=username, password=password)
if user is not None:
if user.is_active:
login(request, user)
return render_to_response('login/loggedin.html',RequestContext(request))
else:
return HttpResponseRedirect('/posts/invalid')
def loggedin(request):
return render_to_response('login/loggedin.html',
{'full_name' : request.user.username})
def invalid_login(request):
return render_to_response('login/invalid_login.html')
def logout(request):
logout(request)
return render_to_response('login/logout.html')
這是我在我的views.py。它正在工作,檢查密碼,用戶等。 但我不知道如何記住用戶已經登錄。Django,如何記住用戶已經登錄?
我想顯示記錄/未記錄的用戶不同的菜單。 試了一下一樣,在我的templates
:
{% block Menu %}
{% if not user.is_authenticated %}
<li> <a href="/posts/login">Login</a> </li>
<li> <a href="/posts/register/">Register</a></li>
{% endif %}
{% if user.is_authenticated %}
<li><a href="/posts">Main</a></li>
<li><a href="#">My profile</a></li>
<li><a href="/posts/logout">logout</a></li>
{% endif %}
{% endblock %}
但它與render_to_response
+ RequestContent
所有其他時間我都第一個選項只能一次而已。 (登錄,註冊)
那麼我該如何記住用戶已經登錄?
p.s.對不起,我的英語不好
是的,您需要RequestContext,因爲它會自動將'user'對象傳遞給模板。什麼似乎是錯的? – 2014-12-04 22:10:28
@DanielRoseman,當我回到主頁面,登錄後,它不起作用,我再次有(登錄,註冊)選項(但我已經登錄),而不是2. – 2014-12-04 22:20:07