gpt4 book ai didi

python - django.db.migrations.exceptions.CircularDependencyError

转载 作者:太空宇宙 更新时间:2023-11-03 13:35:25 25 4
gpt4 key购买 nike

我在空数据库上进行 Django 迁移时遇到问题。当我想迁移时,出现循环依赖错误。通过外键关联的两个应用程序之间的循环依赖错误

/firstapp/models.py

class Person(models.Model):
...


class Doctor(Person):
hospital = models.ForeignKey('hospital.Hospital', on_delete=models.SET_NULL, null=True, default=None,blank = True)
...

class Patient(Person):
doctor = models.ForeignKey('Doctor', on_delete=models.SET_NULL, null=True, default=None)

/secondapp/models.py

class Hospital(models.Model):
...
main_doctor = models.ForeignKey('authoriz.Doctor', on_delete=models.SET_NULL, null=True,verbose_name="Main Doctor")
calendar = models.ForeignKey('schedule.Calendar',verbose_name="calendar",null = True)
...

class Seat(models.Model):
hospital = models.ForeignKey('Hospital', on_delete=models.CASCADE)
...

之后

python manage.py migrate

回溯

Traceback (most recent call last):
File "manage.py", line 22, in <module>
execute_from_command_line(sys.argv)
File "/home/user/project/lib/python3.5/site-packages/django/core/management/__init__.py", line 367, in execute_from_command_line
utility.execute()
File "/home/user/project/lib/python3.5/site-packages/django/core/management/__init__.py", line 359, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/home/user/project/lib/python3.5/site-packages/django/core/management/base.py", line 305, in run_from_argv
self.execute(*args, **cmd_options)
File "/home/user/project/lib/python3.5/site-packages/django/core/management/base.py", line 356, in execute
output = self.handle(*args, **options)
File "/home/user/project/lib/python3.5/site-packages/django/core/management/commands/migrate.py", line 136, in handle
plan = executor.migration_plan(targets)
File "/home/user/project/lib/python3.5/site-packages/django/db/migrations/executor.py", line 60, in migration_plan
for migration in self.loader.graph.forwards_plan(target):
File "/home/user/project/lib/python3.5/site-packages/django/db/migrations/graph.py", line 280, in forwards_plan
self.ensure_not_cyclic(target, lambda x: (parent.key for parent in self.node_map[x].parents))
File "/home/user/project/lib/python3.5/site-packages/django/db/migrations/graph.py", line 370, in ensure_not_cyclic
raise CircularDependencyError(", ".join("%s.%s" % n for n in cycle))
django.db.migrations.exceptions.CircularDependencyError: authoriz.0001_initial, hospital.0001_initial

感谢您的帮助。

最佳答案

暂时注释掉外键以打破循环依赖。看起来您可以通过注释掉 Hospital.doctor 来做到这一点。删除现有迁移并运行 makemigrations 以重新创建它们。

最后,取消注释外键,然后再次运行 makemigrations。您最终应该进行没有任何循环依赖的迁移。

关于python - django.db.migrations.exceptions.CircularDependencyError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40705237/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com