【问题标题】:Lengthening Django Username延长 Django 用户名
【发布时间】:2023-03-29 07:37:01
【问题描述】:

我正在使用这个 sn-p,它允许用户只需要输入一个电子邮件地址来注册我的应用程序:http://djangosnippets.org/snippets/686/

事情几乎完美无缺。问题是当用户的电子邮件地址超过 30 个字符时。我得到一个“确保这个值最多有 30 个字符(它有 40 个)”。错误。

这是因为用户名只能包含 30 个字符。有没有一种简单的方法来告诉 Django 用户名可以更长?似乎应该有一个相当简单的覆盖。

【问题讨论】:

    标签: django django-registration


    【解决方案1】:

    这实际上一点也不简单。这需要继承 User 模型并在任何地方使用它。在这种情况下,我从来不需要这样做,但它可能会导致管理界面出现重大问题。您还可以编辑 django 的源代码以将其关闭 (ick)。

    或者甚至使用这个解决方案: Can django's auth_user.username be varchar(75)? How could that be done?

    虽然很丑。

    您最好编写一个身份验证后端以使用电子邮件字段进行身份验证,而不是使用用户名字段。要填充用户名(这是必需的),您只需通过散列或使用 UUID 生成某种随机的唯一用户名。

    【讨论】:

    • 我也在尝试使用电子邮件地址注册/验证,但我不知道如何处理用户名。我从模板中删除了用户名,但由于它是必填字段,因此表单无法验证。我确实创建了一个自定义注册后端来生成用户的哈希,但由于表单无效,它永远不会被调用。有什么想法吗?
    【解决方案2】:

    希望这个解决方案可以帮助你:http://www.micahcarrick.com/django-email-authentication.html

    【讨论】:

    • 那是一篇了不起的文章,但我仍然遇到 30 个字符的错误
    • 我刚刚手动将 sqlite3 列更新为 75,我仍然得到同样的错误
    猜你喜欢
    • 2014-12-11
    • 2011-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多