1

可能重复:
django 的 auth_user.username 可以是 varchar(75) 吗?那怎么可能呢?

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

4

1 回答 1

0

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

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

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

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

于 2010-09-28T17:14:20.730 回答