第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

一個簡單的django user.is_authenticated問題

一個簡單的django user.is_authenticated問題

萬千封印 2018-07-16 10:45:14
這是我一個view函數(shù):def user_info(request):response=HttpResponse()user=request.useruser_id=user.idif user.is_authenticated():is_login=1else:is_login=0response.write('{"is_login":%s}' % str(is_login))return response雖然用戶已經(jīng)登陸,但是返回的is_login總是0,也就是沒有登陸,這么簡單的一個函數(shù),為什么會出錯?
查看完整描述

2 回答

?
慕森卡

TA貢獻1806條經(jīng)驗 獲得超8個贊

如果你要用is_authenticated()來判斷用戶是否登錄,那么登錄你也得用django.contrib.auth來處理登錄、登出和權(quán)限驗證,你可以再看看admin那一章

我自己寫的話,我一般在session中加標示,后面的請求每次過來都驗證一下session,即可判斷登錄狀態(tài),session也比較好控制過期時長。

def VerifyLogin(request):

    try:

        if request.session['userid']:

            return True

    except:

        return False

 

def gotologin(request):

    string = '登錄信息已過期,請重新登錄'

    return render_to_response('gotologin.html',{'string':string})

下面處理請求的方法中,調(diào)一下VerifyLogin函數(shù)就可以驗證狀態(tài)

if request.session['userid']:

    ....

esle:

    ....


查看完整回答
反對 回復 2018-07-20
?
鴻蒙傳說

TA貢獻1865條經(jīng)驗 獲得超7個贊

如果你使用is_authenticated()判斷用戶是否登錄,那么意味著你采用了django的auth系統(tǒng),
那么你的登陸最好使用django.contrib.auth中的login方法,
該方法會為將user_id以及user_backend放入session中存儲,
.is_authenticated()通過判斷session中是否有user_id 以及user_backend 來判斷用戶是否登陸。
如果,采用自己的登陸方法,那么有可能沒將user_id 或者user_backend 放入session中保存。
所以你的user被django認為沒有登錄,雖然你已經(jīng)登陸了。
最好的辦法是利用django自己的登陸方法,結(jié)合該方法,判斷用戶是否登陸,從而決定用戶的行為。

查看完整回答
反對 回復 2018-07-20
  • 2 回答
  • 0 關(guān)注
  • 593 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號