使用Models.py创建新数据库时,无法验证Django中的登录页



我使用models.py创建了一个新表,该表将数据存储到我创建的models.py表中
现在,当我进入登录页面时,它无法验证该表中的详细信息,并且总是提供无效凭据

我创建的应用程序名称是User,存储在SQLite中的表名称是User_register


登录.html

<div class="wrapper gradient">
<div class="container">
<div class="row centered-form">
<div class="col-xs-12 col-sm-8 col-md-4 col-sm-offset-2 col-md-offset-4">
<div class="panel panel-default">
<div class="panel-heading">
<h3 class="panel-title"><center><b>Login To Web App!!</b></center> </h3>
</div>
<div class="panel-body">
<form role="form" method="POST">
{% csrf_token %}
<div class="form-group">
<input type="text" name="email" id="email" class="form-control input-sm" placeholder="Username">
</div>
<div class="form-group">
<input type="password" name="password" id="password" class="form-control input-sm" placeholder="Password">
</div>
<div class="form-group">
{% for message in messages %}
<p style="color:black;">{{message}}</p>
{%  endfor %}
</div>

<input type="submit" value="Login" class="btn btn-info btn-block">
</form>
</div>
</div>
</div>
</div>
</div>
</div>

型号.py

class Register(models.Model):
first_name = models.CharField(max_length=90)
last_name = models.CharField(max_length=90)
email = models.EmailField(max_length=90)
password = models.CharField(max_length=90)

Views.py

def login(request):
if request.method == 'POST':
email = request.POST['email']
password = request.POST['password']
user = auth.authenticate(email=email, password=password)
if user is not None:
auth.login(request, user)
return render(request,'index.html')
else:
messages.info(request, 'Invalid credentials')
return render(request,'login.html')
else:
return render(request, 'login.html')

我可能失去联系,但

  1. 您使用的字段是在标准auth后端预先制作的,您可以轻松地将其设置为使用这些字段。一个很好的教程是这个youtube系列的一部分https://youtube.com/playlist?list=PLzMcBGfZo4-kQkZp-j9PNyKq7Yw5VYjq9

或者查看此回购的注册应用程序中的密码重置等扩展示例https://github.com/HarryLudemann/Job-Search

  1. 如果您仍然需要制作自己的自定义模型,我建议您使用"自定义authbackend",除非您使用预构建表单,否则几乎总是这样。请在此处检查https://docs.djangoproject.com/en/3.2/topics/auth/customizing/

  2. 如果你仍然想使用setuo,你应该使用内置的表单,这允许你使用cleaned_data方法检查文档https://docs.djangoproject.com/en/3.2/ref/forms/fields/或者在上面的github repo中寻找一个例子。

如果这不能回答帮助,请发布更多的代码、错误或信息。还要确保您已经运行了makemigrations和migration,并对服务器设置进行了最大化。希望这对有所帮助

最新更新