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
,从而向用户显示错误消息。什么会导致注册失败?您应该在forms
clean
方法中执行此操作,并引发
ValidationErrors
其中当表单重新加载时,会向用户显示错误消息。