Каскадное удаление в моделях Django с GenericForeignKey - PullRequest
0 голосов
/ 12 февраля 2012

У меня следующая проблема с Джанго.

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 Ответ

1 голос
/ 12 февраля 2012

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

похоже, что вы удаляете UserProfile, но не конкретный элемент

...