[英]Django 1.10: Error when deleting a model with a GenericRelation
在我的項目中,我使用GenericRelation通過第三個模型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的子類對象的所有ABMappings,也會出現相同的問題。
關於StackOverflow的所有看似相關的問題都與人們抱怨級聯刪除沒有發生有關……但是我什至無法進行頂級刪除。
這些模型的所有功能都能正常運行一段時間……除了從管理員刪除的問題外,這從一開始就沒有起作用。 我在這里想念什么?
謝謝!
您的A模型與B沒有關系,與ABMapping有關系。 因此,A中的關系應為GenericRelation(ABMapping)
。
存在使用另一種模型作為連接表的多對多關系的概念,但其中一種需要實際的ManyToManyField,並帶有through = ABMapping參數,而另外兩種,如果其中一種模式不可行,兩個外鍵是GenericForeignKey。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.