我正在使用这个片段,它允许用户只需要输入一个电子邮件地址来注册我的应用程序: http: //djangosnippets.org/snippets/686/
事情几乎完美无缺。问题是当用户的电子邮件地址超过 30 个字符时。我得到一个“确保这个值最多有 30 个字符(它有 40 个)”。错误。
这是因为用户名只能是 30 个字符。有没有一种简单的方法来告诉 Django 用户名可以更长?似乎应该有一个相当简单的覆盖。
我正在使用这个片段,它允许用户只需要输入一个电子邮件地址来注册我的应用程序: http: //djangosnippets.org/snippets/686/
事情几乎完美无缺。问题是当用户的电子邮件地址超过 30 个字符时。我得到一个“确保这个值最多有 30 个字符(它有 40 个)”。错误。
这是因为用户名只能是 30 个字符。有没有一种简单的方法来告诉 Django 用户名可以更长?似乎应该有一个相当简单的覆盖。
这其实一点都不简单。这需要继承 User 模型并在任何地方使用它。对于这种情况,我从来不需要这样做,但它可能会导致管理界面出现重大问题。您还可以编辑 django 的源代码以将其关闭(ick)。
甚至可以使用这个解决方案: Can django's auth_user.username be varchar(75)? 那怎么可能呢?
虽然它很丑。
您最好编写一个身份验证后端以使用电子邮件字段进行身份验证,而不是使用用户名字段。要填充用户名(这是必需的),您只需通过散列或使用 UUID 生成某种随机的唯一用户名。
希望这个解决方案可以帮助你: http: //www.micahcarrick.com/django-email-authentication.html