gpt4 book ai didi

python - Django,更改用户模型的用户名字段

转载 作者:太空宇宙 更新时间:2023-11-03 16:46:33 25 4
gpt4 key购买 nike

我希望在 django 用户模型中为用户名字段添加最大长度为 255 个字符。我还想增加名字和姓氏字段的最大长度。我浏览了很多帖子,认为猴子补丁是一种选择,但我无法理解它。我想知道是否可以编写自定义迁移文件并以某种方式应用它。是否可能,如果可以的话,一些关于如何实现它的指导将是很好的。

注意:它可能看起来像是重复的,但我在 SO 上找到的很多帖子都是关于添加一个新字段,可以使用 User.add_to_class() 来实现。我打算改变 maxlength。

最佳答案

这是 Django 项目所需的“大”更改,并且可能应该在开始而不是结束时完成。作为经历过生产系统上的用户模型迁移中断的人,我同意 @Burhan Khalid - 保留 contrib.auth.models.User 模型不变。

首先让我们看一下文档中的警告,来自Substituting a custom User model :

Changing this setting after you have tables created is not supported by makemigrations and will result in you having to manually fix your schema, port your data from the old user table, and possibly manually reapply some migrations.

我知道您想“只是增加”这些字段的长度,但这不是一个微不足道的更改,也不是迁移“打算”处理的更改。解决此问题的“Django 方式”是添加满足新要求的自定义用户模型。不幸的是,这意味着如果生产服务器上有现有用户数据,您将必须手动处理迁移。标准说明Customizing authentication in Django会帮助你的。

您将获得的好处(有望让您的辛勤工作得到返回)是:

  • 项目代码受到保护,不会受到任何升级。默认的用户模型不会有任何自定义。
  • 项目代码将符合“Django 方式”,以便其他开发人员和团队成员将来更轻松地合作。

我知道这可能不是您想听到的,但我希望它有所帮助。

关于python - Django,更改用户模型的用户名字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36246333/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com