我正在使用此代码段,用户只需输入电子邮件地址即可注册我的应用:http://djangosnippets.org/snippets/686/
事情几乎完美无缺。问题是当用户的电子邮件地址超过30个字符时。我得到一个“确保这个值最多有30个字符(它有40个字符)。”错误。
这是因为用户名应该只有30个字符。有没有一种简单的方法可以告诉Django用户名可以更长?似乎应该有一个相当简单的覆盖。
答案 0 :(得分:1)
这实际上并不简单。这需要对User模型进行子类化并在任何地方使用它。在这种情况下,我从来没有这样做,但它可能会导致Admin界面出现重大问题。你也可以编辑django的源码来拉掉它(ick)。
甚至使用此解决方案: Can django's auth_user.username be varchar(75)? How could that be done?
虽然这很难看。
您最好编写身份验证后端,以使用电子邮件字段进行身份验证,而不是使用用户名字段。要填充用户名(这是必需的),您只需通过散列或使用UUID生成某种随机唯一用户名。
答案 1 :(得分:0)
希望此解决方案可以为您提供帮助:http://www.micahcarrick.com/django-email-authentication.html