【发布时间】:2017-07-06 01:47:02
【问题描述】:
我在 Django 中编写了两个视图作为类,以便为我的网站进行注册和登录。但问题是用户对象被成功创建。但是,当我稍后尝试进行身份验证时,会收到警告消息,显示具有该用户名的用户已经存在于 Django 中 下面给出两个视图
class RegistrationView(View):
form_class=RegistrationForm
template_name='eapp/user_registration_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():
user=form.save(commit=False)
#cleaned (normalized) data
username =form.cleaned_data['username']
password =form.cleaned_data['password']
email=form.cleaned_data['email']
user.set_password(password)
user.save()
return render(request,self.template_name,{'form':form,})
class LoginView(View):
form_class=LoginForm
template_name='eapp/user_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():
#cleaned (normalized) data
username =form.cleaned_data['username']
password =form.cleaned_data['password']
#authenticatin
user=authenticate(username=username,password=password)
if user is not None:
if user.is_active:
login(request,user)
return render(request,'eapp/index.html',{})
return render(request,self.template_name,{'form':form,})
这是我的 forms.py' 从 django.contrib.auth.models 导入用户 从 django 导入表单
class RegistrationForm(forms.ModelForm):
password=forms.CharField(widget=forms.PasswordInput)
class Meta:
model=User
fields=['username','email','password']
class LoginForm(forms.ModelForm):
password=forms.CharField(widget=forms.PasswordInput)
class Meta:
model=User
fields=['username','password'
]
我该如何解决这个问题?谢谢你
【问题讨论】:
-
你可以分享你的 forms.py 吗?
-
@BrianOcampo 一秒兄弟
-
@BrianOcampo 更新
-
@Darshan 在哪里?
-
忘记我的最后评论,你能检查一下登录按钮是否在点击登录按钮时被调用????