删除Django用户模型的30个字符限制的最简单方法是什么?

删除Django用户模型的30个字符限制的最简单方法是什么?,django,django-models,django-authentication,Django,Django Models,Django Authentication,可能重复: 我继承了一个Django应用程序,它使用自定义的无表单身份验证后端。它通过SQL hack ALTER TABLE auth_User MODIFY列username varchar90;,在django.contrib.auth.models.User中的30个字符限制下工作;,这当然只对数据库有效,但对表单无效。由于我试图从代码中删除所有的hack,包括SQL,所以我正在寻找一种适当的方法来删除该限制。您建议如何删除它?我想不出任何干净的方法来对django.contrib.a

可能重复:


我继承了一个Django应用程序,它使用自定义的无表单身份验证后端。它通过SQL hack ALTER TABLE auth_User MODIFY列username varchar90;,在django.contrib.auth.models.User中的30个字符限制下工作;,这当然只对数据库有效,但对表单无效。由于我试图从代码中删除所有的hack,包括SQL,所以我正在寻找一种适当的方法来删除该限制。您建议如何删除它?

我想不出任何干净的方法来对django.contrib.auth.models.User模型进行这样的更改。事实上,几乎任何改变都是棘手的

一种非常古怪的方法是将用户名委托给UserProfile模型。您可以定义与用户具有一对一关系的UserProfile模型。然后,您必须向概要文件模型添加一个字段,以保存比通常更长的用户名

它还没有结束。要使事情无缝,您必须编写自定义管理器,以确保在查询用户时使用profile字段中的用户名


既然我已经解释清楚了,我一点也不喜欢上面的方法。不用说,这是未经测试的

这是一个精确的复制品。看到答案了吗。