【发布时间】:2011-06-19 18:54:55
【问题描述】:
当添加或删除Foo 类型的对象时,我需要进行相同的计算。如何检测 Foo 模型的对象添加/删除?例如:
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)
【问题讨论】:
-
没有。为什么?没有重复。太棒了。而且非常简单。以及每个人的期望。你不喜欢它的什么?
标签: python django django-models django-signals