Django 1.10:删除具有通用关系的模型时的错误



在我的项目中,我正在使用第三型模型绘制从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参数,而两个,我不相信如果两个外键之一是一个通用外国键。

相关内容

  • 没有找到相关文章

最新更新