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

Vil*_*oja 3 python migration django inheritance maxlength

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

class CustomUser(AbstractUser, BaseModel):
Run Code Online (Sandbox Code Playgroud)

现在他们在这里说Django-ticket,通过创建自定义用户,我可以避免用户名max_length为30的问题.好吧,我已经有了一个自定义用户,所以应该很容易吗?我是怎么做到的:

class CustomUser(AbstractUser, BaseModel):

      username = models.CharField(max_length=70, unique=True, db_index=True)
Run Code Online (Sandbox Code Playgroud)

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

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

lev*_*evi 6

不要试图覆盖username字段.只是

class CustomUser(AbstractUser, BaseModel):

       #here goes other fields

CustomUser._meta.get_field('username').max_length = 70 
Run Code Online (Sandbox Code Playgroud)

但我强烈建议继承AbstractBaseUser.