這將是有人在那裏一個簡單的問題。我搜索了很多,如果有線程可以很好地解決這個問題,請指導我並關閉它。我正在使用Django在我們組織的網站中構建一個非常簡單的Web表單。如何從Django登錄表單傳遞用戶名?
在forms.py我已經得到了登錄頁面類:
class userLogin(forms.Form):
user = forms.CharField(label = 'Username ', max_length = 25)
pwd = forms.CharField(label = 'Password ', widget = forms.PasswordInput)
def clean(self):
cleaned_data = super(userLogin, self).clean()
user = cleaned_data.get("user")
pwd = cleaned_data.get("pwd")
if not fs.authenticateUser(user, pwd):
raise forms.ValidationError("Invalid password!")
我必須對我們網站的API,這是fs.authenticate位是什麼身份驗證;它只是返回True或False。在views.py我這樣做:
if request.method == 'POST':
user_form = userLogin(data = request.POST)
if user_form.is_valid():
return redirect('PickupAuthorization/main')
else:
pass
認證和重定向到主頁工作出色,當憑證是不正確的預期登錄表單拋出一個無效的密碼信息。我想知道的是如何讓「user」可用於views.py。如果我試圖在視圖中引用user_form.user,Python告訴我用戶不是userLogin的屬性!
我沒有做太多與OOP,所以我想象這有一個簡單的答案,但我不能刻着找到它。謝謝!
編輯:我不得不擱置這一項目有利於更緊迫的事情的那一刻,但我會更新它,當我有正常工作的解決方案。
你不需要重新發明輪子,看看https://docs.djangoproject.com/en/1.10/topics/auth/customizing/ – Wtower
我看了看這個,我明白了它談論AUTHENTICATION_BACKENDS設置。但後來它討論了編寫我自己的身份驗證後端,我_think_是我需要做的,因爲我使用的是第三方API。然而,我不清楚如何返回一個用戶對象。如果我正確地閱讀了https://docs.djangoproject.com/en/1.10/topics/auth/default/#user-objects文檔,我需要做一些類似'from django.contrib.auth。模型導入User',然後'user = User.objects.create_user' - 使用經過驗證的用戶名,是嗎? –