如何解决django,添加密码以限制谁可以在我的网站上注册
我有一个注册页面,我想限制谁可以注册到我的网站。
views.py:
def register(request):
if request.method == 'POST':
form = UserRegisterForm(request.POST)
passcode = PassCodeForm(request.POST)
if form.is_valid():
passcode == "FreedomLivesHere"
if passcode == 'passcode':
form.save()
username = form.cleaned_data.get('username')
messages.success(request,f'Account created for {username}!')
return redirect('login')
else:
messages.error(request,f'Passcode incorrect,please try again!')
else:
messages.error(request,f'Oops I did it again! Please try again later.')
return redirect('register')
else:
form = UserRegisterForm()
passcode = PassCodeForm()
context = {
'passcode':passcode,'form':form
}
return render(request,'users/register.html',context)
forms.py
class UserRegisterForm(UserCreationForm):
email = forms.EmailField()
class Meta:
model = User
fields = ['username','email','password1','password2']
class PassCodeForm(forms.ModelForm):
class Meta:
model = Passcode
fields = ['passcode']
当我运行注册页面时,我得到else语句:“糟糕,我又做了一次!请稍后再试。'),添加与字符串匹配的密码字段的最佳方法是什么?另外,取决于密码字符串。它会创建一个活动,管理员或工作人员权限类型。这可能吗?
解决方法
您收到错误Oops I did it again! please try again later
,因为您在同一网址上有两个表单操作。因此,一种形式将永远是无效的。您不能按时发送多个表格。添加字段密码以形成UserRegisterForm并创建验证器,该输入将是输入的密码。
https://docs.djangoproject.com/en/3.1/ref/forms/validation/#cleaning-a-specific-field-attribute
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。