我正在尝试使用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)
返回用户的名称),但仅限于我在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
P.S。
AUTHENTICATION_BACKENDS = ( 'django.contrib.auth.backends.ModelBackend', )
settings.py
我不知道我做错了什么。 你能帮帮我吗?
答案 0 :(得分:0)
当您使用create_user函数
时User.objects.create_user(username ='username',password ='password')
,您之前不需要进行密码加密。
它会自动制作。