当添加或删除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