我在email field
上收到此错误消息,但我正在使用内置的django auth system
。有没有一种简单的方法来覆盖它。当用户注册时,电子邮件地址被添加到内置用户系统内的内置字段中。
由于网站的性质,如果可以将其扩展到超过30个字符,那将会很棒。
答案 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