Python 如何使用Django捕获/排除注册错误?
当用户尝试注册但注册失败时,我希望能够向用户返回消息。 我尝试了以下所有方法:Python 如何使用Django捕获/排除注册错误?,python,django,Python,Django,当用户尝试注册但注册失败时,我希望能够向用户返回消息。 我尝试了以下所有方法: try: user = User.objects.create_user(username, email, password) except User.DoesNotExist print "aaaa" try: user = User.objects.create_user(username, email, password) except IntegrityError
try:
user = User.objects.create_user(username, email, password)
except User.DoesNotExist
print "aaaa"
try:
user = User.objects.create_user(username, email, password)
except IntegrityError
print "aaaa"
当然,以上两项都不起作用。如何正确抛出异常?我建议使用
此外,我无法想象创建一个用户抛出DoesNotExist
。整个想法是用户不存在,所以如果抛出,就会出现一些严重的问题
还要注意,messages框架的默认后端是针对会话存储消息,这对于注册不起作用(因为没有用户登录),因此我建议查看其他后端之一 我建议使用
此外,我无法想象创建一个用户抛出DoesNotExist
。整个想法是用户不存在,所以如果抛出,就会出现一些严重的问题
还要注意,messages框架的默认后端是针对会话存储消息,这对于注册不起作用(因为没有用户登录),因此我建议查看其他后端之一 不久前我遇到了同样的问题,下面是我的解决方案:
try:
user = User.objects.get(username=new_username)
# ERROR! user already exists!
# if you're using a form you could do:
# raise forms.ValidationError('Already exists a user with this username!')
except User.DoesNotExist:
# We're good!, lets create the user
user = User.objects.create_user(username, email, password)
不久前我也遇到了同样的问题,以下是我的解决方案:
try:
user = User.objects.get(username=new_username)
# ERROR! user already exists!
# if you're using a form you could do:
# raise forms.ValidationError('Already exists a user with this username!')
except User.DoesNotExist:
# We're good!, lets create the user
user = User.objects.create_user(username, email, password)
什么会导致注册失败?您应该在forms
clean
方法中执行此操作,并在重新加载表单时引发ValidationErrors
,从而向用户显示错误消息。什么会导致注册失败?您应该在formsclean
方法中执行此操作,并引发ValidationErrors
其中当表单重新加载时,会向用户显示错误消息。