Django makemigrations出了点问题,代码如下:
class User(AbstractBaseUser, PermissionsMixin):
nickname = models.CharField(max_length=30, blank=True, verbose_name=u'')
is_staff = models.BooleanField(default=False, verbose_name=u'')
is_active = models.BooleanField(default=True, verbose_name=u'')
objects = UserManager()当我运行python manage.py makemigrations时,is_staff字段没有出现在迁移文件中。我不知道为什么这个字段消失了。但如果我将名称更改为is_aa,它将显示正确。
迁移文件为:
class Migration(migrations.Migration):
initial = True
dependencies = [
('auth', '0008_alter_user_username_max_length'),
]
operations = [
migrations.CreateModel(
name='User',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('password', models.CharField(max_length=128, verbose_name='password')),
('last_login', models.DateTimeField(blank=True, null=True, verbose_name='last login')),
('is_superuser', models.BooleanField(default=False, help_text='Designates that this user has all permissions without explicitly assigning them.', verbose_name='superuser status')),
('nickname', models.CharField(blank=True, max_length=30, verbose_name='\u6635\u79f0')),
('is_active', models.BooleanField(default=True, verbose_name='\u662f\u5426\u6709\u6548')),
('groups', models.ManyToManyField(blank=True, help_text='The groups this user belongs to. A user will get all permissions granted to each of their groups.', related_name='user_set', related_query_name='user', to='auth.Group', verbose_name='groups')),
('user_permissions', models.ManyToManyField(blank=True, help_text='Specific permissions for this user.', related_name='user_set', related_query_name='user', to='auth.Permission', verbose_name='user permissions')),
],
options={
'db_table': 'user',
},
managers=[
('objects', apps.api.user.models.UserManager()),
],
),发布于 2017-06-22 17:30:19
is_staff = models.BooleanField(_('staff status'), default=False)并将此添加到您的模型中:
def get_group_permissions(self, obj=None):
return self.is_staff 使用这个,因为is_staff已经存在于PermissionMixin中,因此冲突就会发生。
发布于 2017-06-22 22:50:30
尝试将以下内容添加到模型中:
class Meta:
db_table = 'User'
managed = True使用"managed = True“,您是在告诉django他需要管理所有迁移。
在此之后,更新您的应用程序(如果是外部应用程序)并运行
python manage.py makemigrations user
python manage.py showmigrations user (to check if the migration is now correct)
python manage.py migrate userhttps://stackoverflow.com/questions/44695381
复制相似问题