Django之全局使用request.user.username的實(shí)例詳解
我就廢話不多說(shuō)了,大家還是直接看代碼吧!
def pro_mgr(): """ 獲取當(dāng)前登陸用戶的項(xiàng)目 :return: """ if DEVELOP_USER_NAME == 'admin': return Project.objects.all() return Project.objects.filter(prj_mgr=DEVELOP_USER_NAME) class DeployApplyForm(ModelForm): # project = forms.ModelChoiceField(queryset=pro_mgr()) bgn_time = forms.DateTimeField(initial=datetime.datetime.now().strftime("%Y-%m-%dT%H:%M:%S"), label=u'開(kāi)始', input_formats=['%Y-%m-%dT%H:%M:%S'], widget=forms.DateTimeInput( attrs={'type': 'datetime-local', 'emptyTips': u'請(qǐng)選擇時(shí)間', 'step': '1'})) end_time = forms.DateTimeField(initial=datetime.datetime.now().strftime("%Y-%m-%dT%H:%M:%S"), label=u'結(jié)束', input_formats=['%Y-%m-%dT%H:%M:%S'], widget=forms.DateTimeInput( attrs={'type': 'datetime-local', 'emptyTips': u'請(qǐng)選擇時(shí)間', 'step': '1'})) class Meta: model = DeployApply fields = '__all__' def __init__(self, *args, **kwargs): prj_mgr = kwargs.pop('prj_mgr', '') super(DeployApplyForm, self).__init__(*args, **kwargs) if prj_mgr == 'admin': self.fields['project'] = forms.ModelChoiceField(queryset=Project.objects.all()) else: self.fields['project'] = forms.ModelChoiceField(queryset=Project.objects.filter(prj_mgr=prj_mgr))
//views.py deployApplyForm = DeployApplyForm(initial=wfContent[0], prefix='deployApply',prj_mgr=request.user.username)
//settings.py # DEVELOP模式下登陸用戶 DEVELOP_USER_NAME = 'admin'
補(bǔ)充知識(shí):Django 中 request.user 調(diào)用用戶名時(shí)出現(xiàn) AnonymousUser(匿名對(duì)象)的錯(cuò)誤
說(shuō)明
已經(jīng)添加了額外的屬性,現(xiàn)在想通過(guò)request.user的方式獲取,打印request.user是一個(gè)AnonymousUser對(duì)象,無(wú)法獲取 user 值!
原因
1. 沒(méi)有登錄賬號(hào)或者無(wú)法登錄成功。
2. 登錄成功但是在登錄代碼中沒(méi)有注冊(cè) cookie,導(dǎo)致無(wú)法驗(yàn)證身份!
3. 其它原因。
解決方法
1. 登錄賬號(hào),你也可以試著使用 admin 賬戶登錄后,看看能否解決。
2. 參考以下代碼,在 login 中注冊(cè)cookis(大多數(shù)是這種情況):
auth_obj = auth.authenticate(request, username=username, password=password) if auth_obj: # 需要auth驗(yàn)證cookie auth.login(request, auth_obj) ....
3. 換另一種方式重寫 login 。
以上這篇Django之全局使用request.user.username的實(shí)例詳解就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python數(shù)據(jù)可視化實(shí)現(xiàn)漏斗圖過(guò)程圖解
這篇文章主要介紹了Python數(shù)據(jù)可視化實(shí)現(xiàn)漏斗圖過(guò)程圖解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-07-07創(chuàng)建pycharm的自定義python模板方法
今天小編就為大家分享一篇?jiǎng)?chuàng)建pycharm的自定義python模板方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-05-05用Python實(shí)現(xiàn)web端用戶登錄和注冊(cè)功能的教程
這篇文章主要介紹了用Python實(shí)現(xiàn)web端用戶登錄和注冊(cè)功能的教程,需要的朋友可以參考下2015-04-04Python實(shí)現(xiàn)將絕對(duì)URL替換成相對(duì)URL的方法
這篇文章主要介紹了Python實(shí)現(xiàn)將絕對(duì)URL替換成相對(duì)URL的方法,涉及Python字符串操作及正則匹配的相關(guān)技巧,需要的朋友可以參考下2015-06-06python 實(shí)現(xiàn)矩陣上下/左右翻轉(zhuǎn),轉(zhuǎn)置的示例
今天小編就為大家分享一篇python 實(shí)現(xiàn)矩陣上下/左右翻轉(zhuǎn),轉(zhuǎn)置的示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-01-01Python基礎(chǔ)之tkinter圖形化界面學(xué)習(xí)
這篇文章主要介紹了Python基礎(chǔ)之tkinter圖形化界面學(xué)習(xí),文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)python基礎(chǔ)的小伙伴們有非常好的幫助,需要的朋友可以參考下2021-04-04Python實(shí)現(xiàn)數(shù)據(jù)透視表詳解
今天小編就為大家分享一篇用Python實(shí)現(xiàn)數(shù)據(jù)的透視表的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-10-10