3

我收到此错误消息,email field但我使用的是内置的django auth system. 有没有简单的方法来覆盖它。当用户注册时,电子邮件地址被添加到内置用户系统的内置字段中。

如果可以根据网站的性质将其扩展超过 30 个字符,那就太好了。

4

2 回答 2

3

这是在 Django 中使用电子邮件地址作为用户名的问题之一。很多很多电子邮件都超过 30 个字符。解决此问题的一种常见方法是使用自定义“身份验证后端”进行电子邮件身份验证。使用您自己的后端,您可以根据email字段而不是username字段对用户进行身份验证。然后,您可以根据该电子邮件地址或使用随机生成的用户名生成用户名。

您可以在我的博客文章Django Authentication using an Email Address中阅读有关此方法的更多信息。

于 2012-10-11T21:20:30.157 回答
2

也许这不是正确的方法,但在我的项目中,我只是增加了南用户电子邮件的大小。样本:

    >> ./manage.py schemamigration auth --initial && ./manage migrate auth --fake

然后我添加到models.py:

    from django.contrib.auth.models import User
    field = User._meta.get_field('email')
    field.max_length = 254
    field = User._meta.get_field('username')
    field.max_length = 254

现在:

    >> ./manage.py schemamigration auth --auto
    >> ./manage.py migrate auth
于 2013-04-19T13:55:37.817 回答