[英]Django. Authentication (user returns None)
我正在嘗試使用Django創建登錄表單。 所以我在視圖中創建了一個函數,它看起來像這樣:
def signin(request):
if request.method == 'POST':
form = SigninForm(request.POST)
if form.is_valid():
login = request.POST.get('login', '')
password = request.POST.get('password', '')
user = auth.authenticate(username=login, password=password)
print(user)
if user is not None and user.is_active:
auth.login(request, user)
return HttpResponse("OK")
else:
return HttpResponse("ERROR")
else:
form = SigninForm()
return render(request, 'signin.html', {'form': form})
並且可以正常工作(打印OK
, print(user)
返回print(user)
名),但僅適用於在執行syncdb
(超級用戶)時創建的用戶。
但是,當我嘗試創建這樣的用戶時:
def signup(request):
if request.method == 'POST':
form = SignupForm(request.POST)
if form.is_valid():
form.save()
return HttpResponseRedirect('/')
else:
form = SignupForm()
return render(request, 'signup.html', {'form': form})
當我嘗試登錄時它會打印ERROR
,並且print(user)
返回None
聚苯乙烯
settings.py
添加了: AUTHENTICATION_BACKENDS = ( 'django.contrib.auth.backends.ModelBackend', )
我不知道我在做什么錯。 你能幫我嗎?
當您使用create_user函數作為
User.objects.create_user(用戶名='用戶名',密碼='密碼')
,您無需先進行密碼加密。
它將被設為自動。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.