Django 1.10:删除具有GenericRelation的模型时出错

Django 1.10:删除具有GenericRelation的模型时出错,django,generic-relations,django-generic-relations,Django,Generic Relations,Django Generic Relations,在我的项目中,我通过第三个模型ABMapping使用泛型关系将从类A继承的模型映射到类型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(C

在我的项目中,我通过第三个模型ABMapping使用泛型关系将从类A继承的模型映射到类型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管理员中,当我尝试删除A的子对象时,我得到一个错误,“无法将关键字u'object_id'解析到字段中。选项有:x,y,id,abmapping。”它似乎试图从abmapping中获取字段,但在B中找到它

正如你所看到的,我把我的模型精简到最低限度,但问题仍然存在

即使删除了a的子类的对象的所有映射,也会出现相同的问题

StackOverflow上所有看似相关的问题都与人们抱怨没有发生级联删除有关。。。但我甚至无法进行顶级删除

有一段时间,这些模型的一切都运行良好。。。除了这个从管理员删除的问题,它从一开始就不起作用。我错过了什么


谢谢

您的A模型与B没有关系,它与ABMapping有关系。因此,A中的关系应该是
generirelation(ABMapping)


存在使用另一个模型作为连接表的多对多关系的概念,但其中一个需要一个实际的ManyToManyField和一个through=ABMapping参数,另外两个,如果两个外键中的一个是GenericForeignKey,我认为这不起作用。

…这就是我所缺少的!非常感谢。我很困惑,(a)这个东西能像最初写的那样工作这么久,(b)你所建议的改变能无缝地工作而不破坏任何东西。但我要了!再次感谢。