美文网首页
django.db.migrations.exceptions.

django.db.migrations.exceptions.

作者: 有怪兽变身奥特曼 | 来源:发表于2022-05-06 13:55 被阅读0次

    如果在数据库迁移时遇到django.db.migrations.exceptions.CircularDependencyError,且模型不存在循环引用的问题,那么这个报错是由于python文件重复引用导致的,例如我的模型如下:

    from project.models.projectModels import Project
    
    class AuthProject(models.Model):
        project = models.ForeignKey(Project, on_delete=models.CASCADE, verbose_name='项目')
        user = models.ForeignKey(User, on_delete=models.CASCADE, verbose_name='用户')
        ...
    

    该类用于多对多,但为了实现我们自己扩展,不让django框架自己持有,所以创建了一个中间表,并未使用ManyToManyField。

    该模型中两个外键文件不在同一处,AuthProject在User中,project在Project中:


    模型结构

    目前针对这个情况出现的循环引用,有两个解决方案:
    1)将AuthProject模型转移到Project文件中

    如果像这种模型文件分离的形式使用该方案,可能会导致代码结构改变,改动量比较大。

    2)先注释掉循环引用外键,然后makemigrations和migrate,成功后,再打开注释,再进行一次makemigrations和migrate。

    相关文章

      网友评论

          本文标题:django.db.migrations.exceptions.

          本文链接:https://www.haomeiwen.com/subject/wpfsertx.html