【发布时间】:2012-11-25 18:45:48
【问题描述】:
我的 Django 模型中有一个循环依赖,例如模型 A 具有对 B 的外键引用,而 B 具有对 A 的多对多引用。我查阅了其他 SO 帖子并使用了字符串模型名称而不是实际的类,但无济于事。这是我的两个类的缩写版本:
用户模型
import listings.models
class User(models.Model):
...
favorites = models.ManyToManyField('listings.models.Listing')
上市模式
import users.models
class Listing(models.Model):
...
owner = models.ForeignKey('users.models.User')
每次我尝试运行 syncdb 时,它都会输出以下错误:
错误:一个或多个模型未验证:users.user: 'favorites' 与模型 listings.models.Listing 具有 m2m 关系,该模型具有 要么没有安装,要么是抽象的。 Listings.listing: '所有者' 与模型 users.models.User 有关系,要么没有 已安装或抽象。
如何在不牺牲已建立关系的情况下解决此问题?
【问题讨论】:
标签: python database django database-design django-models