【问题标题】:Django: what kind of exceptions does create_user throw?Django:create_user 抛出什么样的异常?
【发布时间】:2012-12-30 13:13:58
【问题描述】:

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

这是通常的做法吗?

【问题讨论】:

    标签: django exception


    【解决方案1】:

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

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

    仅供参考:已经有一些 Django Auth 包,例如django-allauthdjango-userena 等等,它们可以很好地处理所有事情,而不是自己重新发明轮子。

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 2010-11-18
        • 1970-01-01
        • 1970-01-01
        • 2010-12-09
        • 1970-01-01
        • 1970-01-01
        • 2011-01-04
        • 2014-12-03
        • 2011-04-11
        相关资源
        最近更新 更多