在我的项目中,我通过第三个模型 ABMapping 使用 GenericRelation 将从 A 类继承的模型映射到 B 类型的模型。
模型.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 的子类的对象的所有 ABMappings,也会出现同样的问题。
StackOverflow 上所有看似相关的问题都与人们抱怨没有发生级联删除有关……但我什至无法进行顶级删除。
这些模型的一切都运行良好一段时间......除了这个从管理员删除的问题,它从一开始就没有工作。我在这里想念什么?
谢谢!