![](/img/trans.png)
[英]Cannot log in to token endpoint with username/password: drf token auth and custom user model, Django
[英]Django wrong username, password for custom user model
我使用“OneToOneField”創建了自定義用戶 model。 我已經創建了注冊和登錄系統,但只有注冊有效,我可以注冊新用戶,但是,當我嘗試使用該創建的用戶登錄時,Django 不允許我通過顯示我的自定義消息“用戶名或密碼是”來登錄錯誤的'。 我仔細檢查了用戶名和密碼,它是正確的,但 Django 仍然不允許我登錄。
這是我的代碼。
模型.py
class Vendor(models.Model):
user = models.OneToOneField(User, on_delete = models.CASCADE)
phone_number = models.CharField(max_length = 12, blank = True)
forms.py
class SignInForm(forms.Form):
username = forms.CharField(max_length = 20, widget = forms.TextInput(attrs = {'class': 'form-control', 'placeholder': 'Username'} ))
password = forms.CharField(max_length = 15, widget = forms.PasswordInput(attrs = {'class': 'form-control', 'placeholder': 'Password'} ))
視圖.py
form = self.form(request.POST)
if form.is_valid():
username = form.cleaned_data.get('username')
password = form.cleaned_data.get('password')
user = authenticate(username = username, password = password)
if user:
if user.is_active:
login(request, user)
return redirect('dashboard')
else:
messages.error(request, 'Your email address is not verified. Please verify it')
else:
messages.error(request, 'Username or password is wrong')
form = LoginForm(request.POST or None)
context = {
"form":form
}
if form.is_valid():
print(form.cleaned_data)
username = form.cleaned_data.get("username")
password = form.cleaned_data.get("password")
user = authenticate(request, username=username, password=password)
if user is not None:
print(request.user.is_authenticated)
login(request, user)
context['form'] = LoginForm()
return redirect("/")
else:
print('Error')
return render(request, "MainApp/login.html", context)
is not None
條件而不是if user
context['form'] = LoginForm()
我相信這可以解決您的問題
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.