哪个是删除Django User模型的30个字符限制的最简单方法?

时间:2010-09-28 12:57:44

标签: django django-models django-authentication

  

可能重复:
  Can django's auth_user.username be varchar(75)? How could that be done?

我继承了一个使用自定义无表格身份验证后端的Django应用程序。它通过SQL hack django.contrib.auth.models.UserALTER TABLE auth_user MODIFY COLUMN username varchar(90);中的30个字符限制范围内工作,当然这只对数据库有效,但对表单无效。由于我试图从包括SQL的代码中删除所有hack,我正在寻找一种正确的方法来消除这种限制。你会怎么建议删除它?

1 个答案:

答案 0 :(得分:0)

我无法想到对django.contrib.auth.models.User模型进行此类更改的任何干净方法。实际上几乎任何变化都是棘手的。

一种非常简单的方法是将用户名委托给UserProfile模型。您可以定义与UserProfile具有一对一关系的User模型。然后,您必须在配置文件模型中添加一个字段,以保存比平时更长的用户名。

它并没有就此结束。为了使事情变得无缝,您必须编写自定义管理器,以确保在查询用户时使用配置文件字段中的用户名。

现在我已经拼出来了,我根本不喜欢上面的方法。不用说它是未经测试的。