django - 用户始终为无,不允许用户登录
问题描述
在创建登录和注册表单时,我一直在注册表单上遇到问题,问题是每当我通过注册创建用户并尝试使用测试用户登录时它不会登录,总是指向我拥有的 Httpresponse设置。在检查了正在创建用户的管理面板后,现在我不知道该去哪里,我确实认为我没有抓取正确的数据或者它没有抓取它
## Register
def register(request):
if request.method == 'GET':
return render(request, 'auth/register.html', { })
if request.method == 'POST':
form = RegistrationForm(request.POST)
if form.is_valid():
username = form.cleaned_data['username']
password = form.cleaned_data['password']
passwordConf = form.cleaned_data['passwordConf']
email = form.cleaned_data['email']
first_name = form.cleaned_data['first_name']
last_name = form.cleaned_data['last_name']
user = User.objects.create_user(username, password, email)
if password == passwordConf:
return HttpResponseRedirect("/auth/signin")
else:
return HttpResponse("Passwords do not match", status=400)
else:
return HttpResponse("Invalid registration request.(Bad Request)", status=400)
else:
form = RegistrationForm
return HttpResponse("Method not allowed on /auth/register.(Method Not Allowed)", status=405)
## Signin
def signin(request):
if request.method == 'GET':
return render(request, 'auth/signin.html', { })
if request.method == 'POST':
form = SigninForm(request.POST)
if form.is_valid():
username = request.POST["username"]
password = request.POST["password"]
user = authenticate(request, username=username, password=password)
if user is not None:
login(request, user)
return HttpResponseRedirect('/')
else:
return HttpResponse('Invalid Credientials', status=401 )
else:
return HttpResponse("Form is not valid", status=401)
解决方案
您create_user
发送的参数顺序与预期不同。根据文档,它有签名create_user(username, email=None, password=None, **extra_fields)
。
目前,通过使用user = User.objects.create_user(username, password, email)
,您正在设置user.email=password
和user.password=email
。
你需要使用:
user = User.objects.create_user(username, email, password)
推荐阅读
- c++ - 我的问题是我遇到了超出范围的错误
- php - PHP MYSQL ARRAY 检查字符串是否在数组中
- javafx - 无法导入 javafx fxml 类
- spring - 无法提交 JPA 事务;嵌套异常是 javax.persistence.RollbackException: Error while committing the transaction
- haskell - 你能帮我理解这段代码是如何工作的吗?我是haskell的初学者
- geolocation - 在 PowerBI 中连接两个点
- c++ - 如何在创建类和对象时在类中初始化二维数组
- html - 从链接包装 div 中删除焦点轮廓(在 Chrome 中)
- css - 如何获得正确调整的 chrome 渲染颜色的 CSS 颜色代码?
- django - Django 使用 `method=='POST' 检查每个视图有什么好处:`