Django循环模型依赖

Zac*_*ach 7 python database django database-design django-models

我的Django模型中有一个循环依赖,这样模型A有一个B的外键引用,而B有一个多对多的A引用.我查阅了其他SO帖子,并使用了字符串模型名称代替实际的课程,但无济于事.这是我的两个类的缩写版本:

用户模型

import listings.models

class User(models.Model):
    ...
    favorites = models.ManyToManyField('listings.models.Listing')
Run Code Online (Sandbox Code Playgroud)

上市模型

import users.models

class Listing(models.Model):
    ...
    owner = models.ForeignKey('users.models.User')
Run Code Online (Sandbox Code Playgroud)

每次我尝试运行syncdb时,都会输出以下错误:

错误:一个或多个模型未验证:users.user:'favorites'与模型listing.models.Listing有m2m关系,该模型尚未安装或是抽象的.listings.listing:'owner'与模型users.models.User有关系,它们既没有安装也没有抽象.

如何在不牺牲既定关系的情况下解决这个问题?

jpi*_*pic 9

  • 'listings.models.Listing' 应该 'listings.Listing'
  • 'users.models.User'应该'users.User'(或者'auth.User'如果你使用的话django.contrib.auth.models.User)

有关更多信息,请参阅官方文档