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'
我究竟做错了什么?我怎么能解决这个问题?我有应该迁移的数据,所以我不能清空数据库.
不要试图覆盖username字段.只是
class CustomUser(AbstractUser, BaseModel):
#here goes other fields
CustomUser._meta.get_field('username').max_length = 70
Run Code Online (Sandbox Code Playgroud)
但我强烈建议继承AbstractBaseUser.