python - 迁移 admin.0001_initial 在其依赖 app.0001_initial 之前应用在数据库“默认”上
问题描述
我正在尝试为我的项目制作定制的用户模型Django
。
我的模型.py:
class myCustomeUser(AbstractUser):
id = models.AutoField(primary_key=True)
username = models.CharField(max_length=20, unique="True", blank=False)
password = models.CharField(max_length=20, blank=False)
is_Employee = models.BooleanField(default=False)
is_Inspector = models.BooleanField(default=False)
is_Industry = models.BooleanField(default=False)
is_Admin = models.BooleanField(default=False)
class Industry(models.Model):
user = models.OneToOneField(myCustomeUser, on_delete=models.CASCADE, primary_key=True, related_name='industry_releted_user')
name = models.CharField(max_length=200, blank=True)
owner = models.CharField(max_length=200, blank=True)
license = models.IntegerField(null=True, unique=True)
industry_extrafield = models.TextField(blank=True)
class Employee(models.Model):
user = models.OneToOneField(myCustomeUser, on_delete=models.CASCADE, primary_key=True, related_name='employee_releted_user')
industry = models.OneToOneField(Industry, on_delete=models.CASCADE, related_name='employee_releted_industry')
i_id = models.IntegerField(null=True, blank=False, unique=True)
name = models.CharField(max_length=200, blank=False, null=True)
gmail = models.EmailField(null=True, blank=False, unique=True)
rank = models.CharField(max_length=20, blank=False, null=True)
employee_varified = models.BooleanField(default=False)
class Inspector(models.Model):
user = models.OneToOneField(myCustomeUser, on_delete=models.CASCADE, primary_key=True, related_name='inspector_releted_user')
inspector_extrafield = models.TextField(blank=True)
class Admin(models.Model):
user = models.OneToOneField(myCustomeUser, on_delete=models.CASCADE, primary_key=True, related_name='admin_releted_user')
admin_extrafield = models.TextField(blank=True)
在settings.py 中:
AUTH_USER_MODEL = 'app.myCustomeUser'
这里admin.site.register
也是在admin.py
. 现在它在我尝试migrate
or时在终端中显示以下消息makemigrations
:
Traceback (most recent call last):
File "manage.py", line 21, in <module>
main()
File "manage.py", line 17, in main
execute_from_command_line(sys.argv)
File "G:\Python\lib\site-packages\django\core\management\__init__.py", line 401, in execute_from_command_line
utility.execute()
File "G:\Python\lib\site-packages\django\core\management\__init__.py", line 395, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "G:\Python\lib\site-packages\django\core\management\base.py", line 328, in run_from_argv
self.execute(*args, **cmd_options)
File "G:\Python\lib\site-packages\django\core\management\base.py", line 369, in execute
output = self.handle(*args, **options)
File "G:\Python\lib\site-packages\django\core\management\base.py", line 83, in wrapped
res = handle_func(*args, **kwargs)
File "G:\Python\lib\site-packages\django\core\management\commands\makemigrations.py", line 101, in handle
loader.check_consistent_history(connection)
File "G:\Python\lib\site-packages\django\db\migrations\loader.py", line 295, in check_consistent_history
raise InconsistentMigrationHistory(
django.db.migrations.exceptions.InconsistentMigrationHistory: Migration admin.0001_initial is applied before its dependency app.0001_initial on database 'default'.
这是什么意思?而且我也不想在这个模型中设置username
&的默认值。还请建议我,这是正确的制作方法吗?password
myCustomeUser
usermodel
解决方案
我也有同样的问题,但我只是从每个应用程序中删除了我的迁移,删除了数据库,并创建了一个新的。并使用`
python manage.py makemigrations
python manage.py migrate
进行新的迁移,一切正常。
推荐阅读
- symfony - 自定义规范器的 API 平台文档
- hibernate - 使用 Spring Boot JPA 检查 MySQL DB 连接 - 如何设置 Hikari 的超时
- date - SAP 网关服务器中的 DatePicker 值不匹配
- javascript - 使用JS在websql中插入表单数据创建动态表单
- keras - 如何引用多输出模型的一个输出
- pepper - Pepper 机器人参与和动画
- html - 来自检查器 HTML 的不同 HTTP 响应
- flutter - 下一页流未在 Flutter 上更新
- javascript - Plotly Vue TypeError:vue_plotly__WEBPACK_IMPORTED_MODULE_1__.Plotly.newPlot 不是函数
- html - 添加/更改选项时的 Mat-chip-list 调用函数