需要授權。閱讀了幾篇文章,閱讀所有inbuild機制,接受並執行它。他開始這樣做。django授權
註冊模塊django-registration
,寫自己登錄,使用lib django.contrib.auth
。如下所示:我在登錄頁面登錄,似乎一切都很好,但當我去另一頁面授權時,奇蹟般地消失了。據我瞭解,授權沒有寫入會話,我只在登錄頁面獲得授權。
我做了以下內容:
- 授權的登錄頁面上。
- 記錄整個
User
對象爲session
。 - 在每個頁面上,我在頁面加載時檢查的第一件事是會話數據中是否存在
User
,如果是,請從此處讀取它。
來源是這樣的:
def login_user(request):
state = "Please log in below..."
username = password = ''
if request.POST:
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)
state = "You're successfully logged in!"
else:
state = "Your account is not active, please contact the site admin."
else:
state = "Your username and/or password were incorrect."
request.session['user'] = user
return render(request,'auth.html',{'state':state, 'username': username, 'info':'info'})
和網頁,我從session
閱讀:
@csrf_protect
def home(request):
if "user" in request.session:
user = request.session['user']
else:
user = None
return render_to_response('home.html', {'user_name' : user}, context_instance = RequestContext(request))
但我認爲,這是一個非常愚蠢的做法。你能建議一個更合適的方法嗎?