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

时间:2012-12-30 13:13:58

标签: django exception

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

这是通常的做法吗?

2 个答案:

答案 0 :(得分:7)

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

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

仅供参考:已有一些Django Auth软件包,例如: django-allauthdjango-userena以及更多可以很好地处理所有东西的东西,而不是自己重新发明轮子。

答案 1 :(得分:0)

您可以随时轻松查看源代码,因为他们已移至Github或在您计算机上的Python site-packages目录中找到它。

只需转到django/contrib/auth/并分析一些代码。