登录Django sqlite3数据库时出现问题



我想使用名为"用户";在sqlite3数据库中。每当我试图找到匹配的电子邮件作为给定的照片。";对于";循环只检查数据库表中的第一封电子邮件。我应该怎么做才能检查那里存在的所有电子邮件,然后在两者匹配时登录。请帮我解决它。

def login(request):
form = forms.userform()
if request.method == "POST":
form = forms.userform(request.POST)         
if form.is_valid():
email = form.cleaned_data['email'] 
for object in User.objects.all():
if object.email == email:
messages.success(request,'successfull login')
return users(request)

您可以使用authenticate((方法,使用该方法,您不必手动将用户与for循环匹配。

from django.contrib.auth import authenticate
def login(request):
form = forms.userform()
if request.method == "POST":
form = forms.userform(request.POST)         
if form.is_valid():
email = form.cleaned_data['email']
password = form.cleaned_data['password']
user = authenticate(username=username, password=password')
if user is not None:
messages.success(request,'successfull login')
else:
messages.error(request,'Invalid Credentials')
return render(request, "home.html")

最新更新