当我验证它返回空,所以我不能登录,即使我有用户名和密码在我的数据库
from django.shortcuts import render,redirect
from django.contrib import messages
from django.contrib.auth import authenticate, login ,logout
from .models import Signups
from .forms import SignForm
from django.contrib.auth.models import User
from django.contrib.auth.forms import AuthenticationForm
from django.shortcuts import get_object_or_404
from django.http import HttpResponse
# Create your views here.
def loginpage(request):
a=Signups.objects.all()
form1 = AuthenticationForm()
if request.method == 'POST':
form1 = AuthenticationForm(data=request.POST)
username = request.POST.get('username')
password = request.POST.get('password')
print(username,password)
user = authenticate(request,username=username, password=password)
if user is not None:
login(request,user)
return redirect('signed', pk=user.pk)
else:
return HttpResponse("username or password is incorrect")
return render(request, 'database/loginpage.html', {'form1': form1})
def frontpage(request):
return render(request,'database/frontpage.html')
def signup(request):
form=SignForm()
if request.method=='POST':
form = SignForm(request.POST)
if form.is_valid():
user=form.save()
return redirect("signed",pk=user.pk)
return render(request,'database/signup.html',{'form':form})
def signed(request,pk):
sign=Signups.objects.get(id=pk)
return render(request,'database/signed.html',{'sign':sign})
这是我的views.py
我想去一个页面,它显示用户名和密码,我已经写了代码,它的工作原理,但登录形式是不带我去那里。
编辑:我解决了这个问题。我试图让它检查数据库中的数据,我不知道身份验证只适用于用户,而不是数据库中的数据。
1条答案
按热度按时间ukqbszuj1#
有很多可能的原因会导致这种情况。
确保表单数据首先被发送。
然后检查您的设置以进行配置。
另外,请确保您没有在任何地方将用户
is_active
设置为false。如果设置为false,您将无法让用户登录。