我已经在Django中创建了自己的自定义用户个人资料模型,当我尝试运行迁移和迁移命令时,我遇到了错误
django.db.migrations.exceptions.InconsistentMigrationHistory: Migration authtoken.0001_initial is applied before its dependency profiles_api.0001_initial on database 'default'
这是我的models.py
from django.db import models
from django.contrib.auth.models import AbstractBaseUser
from django.contrib.auth.models import PermissionsMixin
from django.contrib.auth.models import BaseUserManager
# Create your models here.
class UserProfileManager(BaseUserManager):
def create_user(self,email,name,password=None):
if not email:
raise ValueError("email is required")
email=self.normalize_email(email)
user=self.model(email=email,name=name)
user.set_password(password)
user.save(using=self._db)
return user
def create_superuser(self,email,name,password):
"""creates new super user with details """
user=self.create_user(email,name,password)
user.is_superuser=True
user.is_staff=True
user.save(using=self._db)
return user
class UserProfiles(AbstractBaseUser,PermissionsMixin):
email=models.EmailField(max_length=255,unique=True)
name=models.CharField(max_length=255)
is_active=models.BooleanField(default=True)
is_staff=models.BooleanField(default=False)
objects=UserProfileManager()
USERNAME_FIELD='email'
REQUIRED_FIELD=['name']
def get_fullname(self):
return self.name
def get_shortname(self):
return self.name
def __str__ (self):
return self.email
在设置中我添加了AUTH_USER_MODEL='profiles_api.UserProfiles'
并且我试图删除我的初始数据库,例如000init.py文件,并检查是否可以运行
任何帮助都值得赞赏 预先感谢
答案 0 :(得分:0)
当替换Django User
模型并且您已经迁移到数据库时,您应该考虑通过删除数据库来重新开始(如果其他表根本不涉及用户表,则至少删除用户表) (通常不是这种情况)以及迁移文件夹
settings.py
文件:
INSTALLED_APPS = [
...
'profiles_api',
...
]
AUTH_USER_MODEL='profiles_api.UserProfiles'
在终端机上:
有时mikemigrations
无法检测到更改并返回
makemigrations返回“未检测到更改。
因此指定app
名称很有帮助
> python manage.py makemigrations profiles_api
> python manage.py makemigrations
> python manage.py migrate
我希望这会有所帮助。