gpt4 book ai didi

python - 如何通过创建自定义模型覆盖 Django 中用户名的最大长度

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

我有一个问题。我正在使用 Django 1.7,并且已经制作了一个自定义用户模型,它继承了 Django 的抽象用户,如下所示:

class CustomUser(AbstractUser, BaseModel):

现在他们在这里说Django-ticket ,我可以通过创建自定义用户来避免用户名的 max_length 为 30 的问题。好吧,我已经有一个自定义用户,所以应该很容易吧?我是如何尝试这样做的:

class CustomUser(AbstractUser, BaseModel):

username = models.CharField(max_length=70, unique=True, db_index=True)

现在,当我尝试为更改此字段进行迁移时,会导致错误:django.core.exceptions.FieldError: Local field 'username' in class 'CustomUser' clashes with field of similar name from base “抽象用户”类

我做错了什么?我该如何解决这个问题?我有应该迁移的数据,所以我不能清空数据库。

最佳答案

不要尝试覆盖 username 字段。只是

class CustomUser(AbstractUser, BaseModel):

#here goes other fields

CustomUser._meta.get_field('username').max_length = 70

但我强烈推荐inherit from AbstractBaseUser反而。

关于python - 如何通过创建自定义模型覆盖 Django 中用户名的最大长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29027307/

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