Django models 具有GenericForeignKey的Django模型中的级联删除

Django models 具有GenericForeignKey的Django模型中的级联删除,django-models,cascading-deletes,Django Models,Cascading Deletes,我对Django有以下问题 class UserProfile(Model): inventory = models.M2M(InventoryItem) class InventoryItem(Model): item = GenericForeignKey() class Equipment(Model): base = GenericForeignKey() 每个用户都可以有许多项。库存项目可以指向设备、材料等,但在这种情况下,它指向设备模型。装备型号与武器、

我对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,但在GenericForeignKey上看不到这样的选项。解决办法是什么

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


看起来你在删除用户配置文件,但不是特定的项目

oops,我不是有意写的。