gpt4 book ai didi

Django 的身份验证表单总是无效

转载 作者:行者123 更新时间:2023-12-01 15:32:06 24 4
gpt4 key购买 nike

我试图使用 Django 和使用 AbstractUser 类的自定义用户来实现一个基本的登录系统。这是我的 models.py:

from django.db import models
from django.contrib.auth.models import AbstractUser

class Stock(models.Model):
stock_name = models.CharField(max_length=10)
stock_price = models.FloatField()

def __str__(self):
return self.stock_name

class CustomUser(AbstractUser):
stocks = models.ManyToManyField(Stock)

def __str__(self):
return self.username

我的表格.py:

from .models import CustomUser,Stock
from django.contrib.auth.forms import AuthenticationForm

class loginform(AuthenticationForm):
class Meta:
model = CustomUser
fields = ('username', 'password')

我的观点.py:

def successful_login(request, pk):
user = get_object_or_404(CustomUser, pk=pk)
return render(request, '../templates/stock_portfolio.html', {'user':user})

def loginview(request):
err=0
if request.method=="POST":
form = loginform(request.POST)
pdb.set_trace()
if form.is_valid():
username = form.cleaned_data['username']
password = form.cleaned_data['password']
user = authenticate(username=username, password=password)
if user is not None:
pdb.set_trace()
login(request, user)
pk = user.id
pdb.set_trace()
return redirect('successful_login', pk=pk)
else:
err=1
return render(request,'../templates/login.html',{'response':err,'form':form})
else:
form = loginform()
return render(request, '../templates/login.html',{'form':form})

虽然在这里使用 pdb 进行日志记录,但我得到的是表单。

<loginform bound=False, valid=Unknown, fields=(username;password)>

我现在该如何进行?

最佳答案

回答这个问题是因为我遇到了同样的问题并发现了问题所在。改变你的

form = loginform(request.POST)

form = loginform(data=request.POST)

对我来说就像一个魅力。

关于Django 的身份验证表单总是无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45824046/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com