Django - Что происходит, когда вы удаляете сущность в таблице, которая имеет внешний ключ ManyToMany к другой?
Я заметил, что Django не позволяет вам задавать параметр on_delete
для ManyToManyField
. Это заставило меня задуматься, что произойдет, если вы удалите сущность в отношениях ManyToMany? Например, допустим, у нас есть Book
, который имеет отношение ManyToMany к Author
. Предположим, что у книги A есть 3 автора: "Том Лам", "Лам Том" и "Бритни Бритни". Затем допустим, что "Britney Britney" удаляется из таблицы Author
. Удаляется ли "Britney Britney" из отношения ManyToMany с Book
? Возникает ли исключение при попытке удалить "Britney Britney?". Что делает Django в случае, когда сущность удаляется, если она существует в отношениях ManyToMany?
Если "Britney Britney" удаляется из таблицы Author
, "Britney Britney" также удаляется из авторов книги (это также применимо и в обратном порядке). Django не выбросит исключение, просто удаленный экземпляр больше не будет доступен через отношения "многие-ко-многим"