加长Django用户名

时间:2011-07-15 17:14:52

标签: django django-registration

我正在使用此代码段,用户只需输入电子邮件地址即可注册我的应用:http://djangosnippets.org/snippets/686/

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

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

2 个答案:

答案 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