我可以将 Django 的 auth_user.username 字段更改为 100 个字符长而不破坏任何内容吗?

2024-03-01

在有人将此问题标记为此问题的重复项之前django的auth_user.username可以是varchar(75)吗?怎么可能呢? https://stackoverflow.com/questions/2610088/can-djangos-auth-user-username-be-varchar75-how-could-that-be-done或有关 SO 的其他此类问题,请阅读此问题。我链接到的问题准确地提出了这个问题,但不幸的是,答案没有解决所提出的问题。

我可以通过执行以下操作将 auth_user.username 字段更改为 100 个字符长:

  1. 在数据库中针对用户名字段运行 ALTER 表
  2. 在这里更改 max_length:username = models.CharField(_('username'), max_length=30, unique=True, help_text=_("Required. 30 characters or fewer. Letters, numbers and @/./+/-/_ characters"))

如果我这样做的话,会破坏 Django 中的任何东西吗?

当我将 Django 更新到更高版本时,这会中断,这不是问题。我也不考虑编写其他身份验证方法。我只是想知道如果我这样做是否会破坏任何东西。


您需要在几个地方对 max-length 进行猴子修补:模型字段的描述、表单字段的描述和最大长度验证器。最大长度验证器附加到表单字段和模型字段。

这是一个代码片段,它将修补所有内容:

https://gist.github.com/1143957 https://gist.github.com/1143957(使用 django 1.2 和 1.3 进行测试)

更新: 好消息!从 django 1.5 开始你可以覆盖用户模型:自定义用户模型 https://docs.djangoproject.com/en/1.5/topics/auth/#auth-custom-user

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我可以将 Django 的 auth_user.username 字段更改为 100 个字符长而不破坏任何内容吗? 的相关文章

随机推荐