使用长用户名的Django身份验证

时间:2010-11-08 11:15:35

标签: django django-models django-forms django-views

在django / django / contrib / auth的models.py中,用户名长度更改为64个字段而不是30个,数据库中的用户名有varchar(64)。但它不允许使用长用户名登录harry@sdsdasfdfdfgdfgdfgdfgdfgdfg.com

如何解决这个问题

class User(models.Model):
 """
 Users within the Django authentication system are represented by this model.

 Username and password are required. Other fields are optional.
 """
 username = models.CharField(_('username'), max_length=64, unique=True, help_text=_("Required. 64 characters or fewer. Letters, numbers and @/./+/-/_ characters"))

3 个答案:

答案 0 :(得分:1)

我建议你不要修补Django,而是创建自己的身份验证后端。然后,您可以针对用户的电子邮件进行验证,例如:http://djangosnippets.org/snippets/1845/

答案 1 :(得分:0)

我知道这是一个老问题,但我觉得是时候换新答案,因为自定义用户模型可以说是django 1.5的最佳功能。

从现在开始,可以创建自己的自定义用户模型,并将其与现有的身份验证功能一起使用。最新文档详细介绍了https://docs.djangoproject.com/en/dev/topics/auth/#auth-custom-user

答案 2 :(得分:-1)

嘿伙计在bitbucket中有一个名为django-registration的漂亮应用程序,我相信你会有一个可能的方法来完成你的任务。如果此链接可以帮助您,请告知我们。 http://bitbucket.org/ubernostrum/django-registration