【问题标题】:Which is the easiest way to remove Django User model's 30 character limit? [duplicate]删除 Django User 模型的 30 个字符限制的最简单方法是什么? [复制]
【发布时间】:2011-04-18 07:04:39
【问题描述】:

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

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

【问题讨论】:

标签: django django-models django-authentication


【解决方案1】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-25
    • 2011-10-06
    • 2010-09-08
    相关资源
    最近更新 更多