Django:create_user会抛出什么样的异常?

Tro*_*ong 2 django exception

我想抓住它们并将有用的消息返回给用户.文档https://docs.djangoproject.com/en/1.4/topics/auth/表示在给出无效的用户名时会引发ValueError.当用户名已存在时,还存在IntegrityError.这些都是?

这是通常的做法吗?

Aam*_*nan 7

如果您不使用Django Auth Forms,则必须手动进行验证.简单的方法是当用户提交自定义表单时,您应该检查:

  • 如果用户名有效,则匹配正则表达式,例如\ w +
  • 检查用户名是否已被采用,例如 User.objects.filter(username=username).exists()
  • 检查电子邮件是否已用于帐户,例如 User.objects.filter(email=email).exists()
  • 然后创建用户

FYI:有一些已经Django的验证包如Django的allauth,Django的userena和许多负责处理所有的东西非常好,而不是由你自己重新发明轮子.