在我的项目中,我正在使用第三型模型绘制从A类代替B类的模型到B类模型。
。models.py:
class A(models.Model):
b = GenericRelation(B)
class Meta:
abstract = True
class ABMapping(models.Model):
b = models.ForeignKey(B)
content_type = models.ForeignKey(ContentType)
object_id = models.PositiveIntegerField()
content_object = GenericForeignKey('content_type', 'object_id')
class B(models.Model):
x = ...
y = ...
在django管理员中,当我尝试删除一个儿童的对象时,我会遇到一个错误,"无法将关键字u'object_id'分为字段。选择是:x,y,y,id,abmapping。"似乎正在尝试从abmapping中获取一个领域,但在b。
中找到它。您可以看到,我将模型剥离至最低限度,但问题仍然发生。
即使我删除了a子类的对象的所有abmappings,也会发生同样的问题。
所有关于Stackoverflow的看似相关的问题都与抱怨级联删除没有发生的人有关...但是我什至无法进行顶级删除。
这些模型的所有操作都很好了一段时间...除了从一开始就从未工作的此删除这一问题。我在这里缺少什么?
谢谢!
您的A模型与B没有关系,它与Abmapping有关系。因此,A中的关系应为GenericRelation(ABMapping)
。
存在使用另一个模型作为连接表的多一对多关系的概念,但是一个需要一个实际的Manytomanyfield,其中具有a to to to to to to to = abmapping参数,而两个,我不相信如果两个外键之一是一个通用外国键。