使用GenericForeignKey在Django模型中删除级联

时间:2012-02-12 16:21:30

标签: django-models cascading-deletes

我对Django有以下问题。

class UserProfile(Model):
    inventory = models.M2M(InventoryItem)

class InventoryItem(Model):
    item = GenericForeignKey()

class Equipment(Model):
    base = GenericForeignKey()

每个用户都可以拥有多个项目。库存项目可以指向设备,材料等,但在这种情况下,它指向设备模型。装备模型与武器或装甲或附件有关系。

我需要从用户的广告资源中删除特定项目。

UserProfile.objects.get(pk=1).inventory.objects.all()[0].delete()

**这也会删除不相关的设备和武器/装甲/配件对象。 **

我已经在所有外键上添加了on_delete = DO_NOTHING,但我没有在GenericForeignKeys上看到这样的选项。解决方案是什么?

1 个答案:

答案 0 :(得分:1)

  

UserProfile.objects.get(PK = 1).delete()

看起来您要删除UserProfile,而不是特定项