自定义用户模型的 Wagtail 迁移错误

Wagtail migration error with custom user models

我全新安装了 wagtail。要制作用户个人资料页面,我想扩展用户数据。我用 manage.py startapp 添加了一个应用程序并遵循了官方文档:

https://docs.wagtail.io/en/stable/advanced_topics/customisation/custom_user_models.html

我添加了应用配置文件,我的模型如下所示:

from django.db import models
from django.contrib.auth.models import AbstractUser


class Profiel(AbstractUser):
    bedrijfsnaam = models.CharField(max_length=300,blank=True)
    omschrijving = models.TextField(max_length=500,blank=True)

我的设置是这样的:

AUTH_USER_MODEL = 'profiel.Profiel'

迁移时出现的错误是这样的:

django.db.migrations.exceptions.InconsistentMigrationHistory: Migration admin.0001_initial is applied before its dependency profiel.0001_initial on database 'default'.

网上找了个话题,建议暂时把settings.py中的django.contrib.admin注释掉,结果又出现其他错误

您可以 运行 只迁移一次而不是全部:https://docs.djangoproject.com/en/3.1/ref/django-admin/#django-admin-migrate

因此,改编并运行以下命令:

django-admin migrate [app_label] profiel.0001_initial

如果开箱即用,请按照上述文档添加 --fake 标志。

该错误提示您在添加自定义模型和迁移之前已经 运行 ./manage.py migrate。这是不正确的 - 您用于添加自定义用户模型的迁移需要成为初始迁移的一部分 运行。 Adding a custom user model to an already-built database 是一个更棘手的过程。

如果这是全新安装,最好的办法是删除并重新创建数据库(如果您使用的是 sqlite,则删除 db.sqlite3 文件,或者 运行ning dropdb databasename / createdb databasename 在 postgres 上)- 运行ning ./manage.py migrate 完成新迁移后应该会成功完成。