Django 2.2 AbstractUser和迁移问题 [英] Django 2.2 AbstractUser and migration issue
本文介绍了Django 2.2 AbstractUser和迁移问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我可以像这样扩展Django用户模型:
I extend the Django user model like this:
#core.models
class Institute(models.Model):
phone_regex = RegexValidator(regex=r'^\+?1?\d{9,15}$', message=institute_phone_help_text)
name = models.CharField(_('name'), max_length=255)
description = models.TextField(_('description'), blank=True)
abbreviation = models.CharField(_('abbreviation'), blank=True, max_length=100)
address = models.TextField(_('address'), blank=True)
phone = models.CharField(validators=[phone_regex], max_length=17, blank=True) # validators should be a list
websites = ArrayField(models.URLField(max_length=255), verbose_name=_('websites'), blank=True, null=True)
class Meta:
verbose_name = _('institute')
verbose_name_plural = _('institutes')
def __str__(self):
return '{0} ({1})'.format(self.name, self.abbreviation)
class User(AbstractUser):
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
institute = models.ForeignKey(Institute, on_delete=models.CASCADE)
params = JSONField(_('params'), null=True, blank=True,)
about_me = models.TextField(_('about me'), blank=True,)
每次启动时都有一个空数据库。/manage.pymakemigrations核心
它将始终创建一个新的迁移文件
With an empty DB each time that I launch ./manage.py makemigrations core
it creates always a new migration file
import django.contrib.auth.models
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('core', '0002_auto_20190430_1655'),
]
operations = [
migrations.AlterModelManagers(
name='user',
managers=[
('objects', django.contrib.auth.models.UserManager()),
],
),
]
我尝试了不同的组合:
./manage.py makemigrations core
./manage.py migrate core
./manage.py migrate
./manage.py makemigrations core
./manage.py makemigrations core
./manage.py makemigrations
./manage.py migrate
它始终创建迁移文件。
谢谢。
D
推荐答案
如果您使用 AbstractUser
模型,请确保在迁移$ c之前运行
makemigrations
$ c>。
if you use AbstractUser
model make sure you run makemigrations
before migrate
.
我与 AbstractUser
有相同的问题,
我通过删除sqlite3文件解决了所有迁移问题文件。
之后,我运行以下两个命令:
i had same issue with AbstractUser
,
I solved it by deleting the sqlite3 file also all migrations files.
After that i run this two commands :
python manage.py makemigrations
python manage.py migrate
在您的终端机内部
让我知道是否有帮助!
这篇关于Django 2.2 AbstractUser和迁移问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文