ANDREW_TUR
@ANDREW_TUR

Django. Many-to-many. Как сделать каскадное удаление со связующей таблицы?

Допустим есть две таблицы и связующая между ними...
5bbb384fb9c20489553268.png

Как сделать чтоб при удалении сущности "developer", удалялась и запись со связующей таблицы???
Как правильно это записать в Django? Я так понял он не делает это по умолчанию?
  • Вопрос задан
  • 801 просмотр
Решения вопроса 1
@FulTupFul
on_delete=models.CASCADE по умолчанию. По сути, manytomanyfield просто за кулисами создает еще одну таблицу со связями ForeignKey на две таблицы, но никто не запрещает вам контролировать это вручную. Тогда обязательно укажите атрибут through в ManyToManyField:
class M2M(models.Model):
    developer = models.ForeignKey('Developer', on_delete=models.CASCADE)
    project = models.ForeignKey('Project', on_delete=models.CASCADE)
    
    class Meta:
        db_table = "m2m"
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы