При добавлении или удалении объектов типа Foo
мне нужно сделать тот же расчет. Как я могу определить добавление/удаление объектов для модели Foo
? Например:Как я могу обнаружить, когда объекты модели Django добавляются/удаляются?
from django.db import models
class Foo(models.Model):
...
def save(self):
#do some processing
def delete(self):
#do some processing
Могу ли я избежать дублирования кода в этих двух методов?
Использование сигналов можно реализовать как
from django.db import models
from django.db.models.signals import post_save, post_delete
class Foo(models.Model):
...
...
def foo_handler(sender, **kwargs):
#do some processing
post_save.connect(foo_handler, sender=Foo)
post_delete.connect(foo_handler, sender=Foo)
Нет. Почему? Нет дублирования. Это потрясающе. И очень просто. И то, что все ожидают. Что вам не нравится? –