我正在尝试编写自己的简单登录页面,但每当我提交数据时,它都会显示user already exists
我从未致电save
这是我的views.py
def login (request):
form = loginform(request.POST)
if request.method == 'POST':
if form.is_valid():
email = form.cleaned_data['EMAIL']
code = form.cleaned_data['code']
user = authenticate(username=email, password=code)
if user is not None:
return HttpResponseRedirect('exam')
else:
form = loginform()
return render(request, 'frontend/login.html', {'form': form})
my forms.py
class loginform(ModelForm):
EMAIL = forms.CharField( max_length=30, label = ("Your Email"))
code = forms.CharField( max_length=30, label = ("Your Code"))
class Meta:
model = APPLICANT_DATA
fields = ('EMAIL', 'code',)
我和this有类似的问题,但我无法跟进,因为我有点像初学者
任何指针,链接或小样本代码都会有所帮助
提前谢谢
答案 0 :(得分:1)
您不应该将ModelForm类用于登录表单的基类,因为在这种情况下,当您在视图中调用form.is_valid()时,它不仅会验证电子邮件和代码表单字段,还会检查您是否可以使用已提交的电子邮件和代码创建APPLICANT_DATA的新实例。因此,您的表单实例无效,这就是您看到消息的原因"用户已经存在"
在您的情况下,您只需要验证电子邮件和代码字段,因此您应该使用forms.Form类作为loginform的父类。