类型字符变化的值太长(30)

时间:2012-10-11 14:43:19

标签: django django-admin django-authentication django-authopenid

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

由于网站的性质,如果可以将其扩展到超过30个字符,那将会很棒。

2 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分: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