2014-12-19 2 views
3

В моем приложении post_delete сигналы записываются в определенной модели и когда они были удалены.Касад Django delete и post_delete signal

class A(models.Model): 
    ... 

class B(models.Model): 
    a = models.ForeignKey('A') 

class C(models.Model): 
    b = models.ForeignKey('B') 

def log_delete(sender, instance, **kwargs): 
    logging 

post_delete.connect(log_delete, sender = A) 
post_delete.connect(log_delete, sender = C) 

При удалении экземпляра каскадного удаления A происходит удаление экземпляров B и C. Как отключить сигнал для дочерних экземпляров при удалении каскада django?

ответ

0

Короткий ответ:

Вы не можете.

Длинный ответ:

Вы должны переопределить .delete методы вашего Model и вашего менеджер модели QuerySet

я достиг какой-то подобной задачи, имея экземпляр, который удаление было вызван на проходя с помощью сигналов pre/post delete.

Адрес https://gist.github.com/ar45/9c1448a91bcc94997ff0

Смежные вопросы