當添加或刪除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)
號爲什麼?沒有重複。太棒了。而且非常簡單。每個人都期待什麼。你不喜歡它什麼? – 2011-02-02 11:04:50