Django之全局使用request.user.username的實(shí)例詳解
我就廢話不多說了,大家還是直接看代碼吧!
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’開始’, input_formats=[’%Y-%m-%dT%H:%M:%S’], widget=forms.DateTimeInput( attrs={’type’: ’datetime-local’, ’emptyTips’: u’請選擇時(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’請選擇時(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.pydeployApplyForm = DeployApplyForm(initial=wfContent[0], prefix=’deployApply’,prj_mgr=request.user.username)
//settings.py# DEVELOP模式下登陸用戶DEVELOP_USER_NAME = ’admin’
補(bǔ)充知識:Django 中 request.user 調(diào)用用戶名時(shí)出現(xiàn) AnonymousUser(匿名對象)的錯(cuò)誤
說明
已經(jīng)添加了額外的屬性,現(xiàn)在想通過request.user的方式獲取,打印request.user是一個(gè)AnonymousUser對象,無法獲取 user 值!
原因
1. 沒有登錄賬號或者無法登錄成功。
2. 登錄成功但是在登錄代碼中沒有注冊 cookie,導(dǎo)致無法驗(yàn)證身份!
3. 其它原因。
解決方法
1. 登錄賬號,你也可以試著使用 admin 賬戶登錄后,看看能否解決。
2. 參考以下代碼,在 login 中注冊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í)例詳解就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. ASP新手必備的基礎(chǔ)知識2. PHP基礎(chǔ)之生成器4——比較生成器和迭代器對象3. CentOS郵箱服務(wù)器搭建系列——SMTP服務(wù)器的構(gòu)建( Postfix )4. asp文件用什么軟件編輯5. JAVA 實(shí)現(xiàn)延遲隊(duì)列的方法6. Vue axios獲取token臨時(shí)令牌封裝案例7. js實(shí)現(xiàn)計(jì)算器功能8. JS中6個(gè)對象數(shù)組去重的方法9. 利用CSS制作3D動畫10. 通過IEAD+Maven快速搭建SSM項(xiàng)目的過程(Spring + Spring MVC + Mybatis)

網(wǎng)公網(wǎng)安備