可能重复:
Can django's auth_user.username be varchar(75)? How could that be done?
我继承了一个使用自定义无表格身份验证后端的Django应用程序。它通过SQL hack django.contrib.auth.models.User
在ALTER TABLE auth_user MODIFY COLUMN username varchar(90);
中的30个字符限制范围内工作,当然这只对数据库有效,但对表单无效。由于我试图从包括SQL的代码中删除所有hack,我正在寻找一种正确的方法来消除这种限制。你会怎么建议删除它?
答案 0 :(得分:0)
我无法想到对django.contrib.auth.models.User
模型进行此类更改的任何干净方法。实际上几乎任何变化都是棘手的。
一种非常简单的方法是将用户名委托给UserProfile
模型。您可以定义与UserProfile
具有一对一关系的User
模型。然后,您必须在配置文件模型中添加一个字段,以保存比平时更长的用户名。
它并没有就此结束。为了使事情变得无缝,您必须编写自定义管理器,以确保在查询用户时使用配置文件字段中的用户名。
现在我已经拼出来了,我根本不喜欢上面的方法。不用说它是未经测试的。