Django 2.2 AbstractUser和迁移问题 [英] Django 2.2 AbstractUser and migration issue

查看:149
本文介绍了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 模型,请确保在迁移 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆