gpt4 book ai didi

python - 登录表单不断告诉我的用户名已经存在 django

转载 作者:太空宇宙 更新时间:2023-11-03 15:46:15 25 4
gpt4 key购买 nike

所以我试图使用 forms.py 文件为 django 网站制作一个登录表单,以在我的 html 中生成表单。我已经使用相同的方法制作了一个注册表单,并且效果很好,但由于某种原因,我的登录表单仍然像注册表单一样工作,并说我的用户名已经存在。我认为这只是一个小错误,但我无法弄清楚它到底是什么。

forms.py

from django.contrib.auth.models import User
from django import forms

class LoginForm(forms.ModelForm):
password = forms.CharField(widget=forms.PasswordInput)

class Meta:
model = User
fields = ['username', 'password']

模型.py

class LoginFormView(View):
form_class = LoginForm
template_name = 'intranet/login_form.html'

def get(self, request):
form = self.form_class(None)
return render(request,self.template_name,{'form': form})

def post(self,request):
form = self.form_class(request.POST)

if form.is_valid():

username = request.POST.get['username']
password = request.POST.get['password']
user = authenticate(username=username,password=password)

if user is not None:
if user.is_active:
login(request,user)
return redirect('werknemers_list')

return render(request, self.template_name, {'form': form})

login_form.html

<h1>Log in</h1>
<form method="post">
{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="log in" />
</form>

urls.py

 from django.conf.urls import  url

from intranet import views

urlpatterns = [
url(r'^$', views.LoginFormView.as_view(), name='login'),
url(r'^registreer$', views.UserFormView.as_view(), name='registreer')]

最佳答案

您不应该为此使用 ModelForm。这将始终调用模型验证,在本例中检查用户名的唯一性。

改用标准 Form 类。

关于python - 登录表单不断告诉我的用户名已经存在 django,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41729391/

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