扩展我的Django用户mod时出现问题

2024-04-26 22:56:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个简单的django应用程序,并试图建立一个自定义的django用户模型,这样我就可以让用户用他们的email字段登录。我想我已经把一切都设置得很好了,这一切都很简单,但是当我尝试实际运行迁移时,我得到了一个错误:

django.db.migrations.exceptions.InconsistentMigrationHistory: Migration admin.0001_initial is applied before its dependency accounts.0001_initial

看起来很奇怪?在

我很难理解为什么它很难理解。在

下面是Im实现的用户模型

^{pr2}$

Tags: django用户模型应用程序dbisemailmigrations
2条回答

基本上,您已经创建了一些用户帐户,或者至少已经创建了超级用户帐户。因为在我假设您已经至少进行了一次迁移之后,您正在更改用户模型,Django与新用户模型之间存在冲突。在

解决方案是删除管理员中的所有帐户,包括超级用户。然后删除migrations文件夹中的迁移文件。我也认为删除你的sqlite数据文件。迁移应该可以再次运行。在

您应该在任何迁移之前创建自定义用户模型。在

“启动项目时使用自定义用户模型”

如果您正在启动一个新项目,强烈建议您设置一个自定义用户模型,即使默认用户模型对您来说已经足够了。此模型的行为与默认用户模型相同,但是如果需要,您可以在将来对其进行自定义。“reference->;django docs

那么你必须指定设置.py您正在使用新的用户模型(在您第一次迁移之前也是如此)

from django.contrib.auth.models import AbstractUser

class User(AbstractUser):
    pass

# in settings.py

AUTH_USER_MODEL = 'myapp.MyUser'

我强烈建议您查看上面的链接。在

现在要解决您的问题,您可以在migrations目录下的应用程序路径中删除迁移,然后重置数据库,然后按照上面的说明进行操作。在

在django中更改用户模型mid-project很困难,需要手动编辑模式,因此,由于项目是出于教育目的,所以只需重置它

相关问题 更多 >