如何实现 Django 的 pre_save 和 post_save?
我尝试了很多方法来实现Django的pre_save和post_save信号,但还是无法生成信号。
我现在的代码是:
Class Client(models.Model):
.
.
. # some fields
Class ClientView(models.Model):
.
.
. # some fields
class Meta:
managed = False
db_table = u'clients_view'
verbose_name = 'Client'
verbose_name_plural = 'Clients'
def save(self):
models.signals.pre_save.send(sender=obj, instance=self)
obj = Client(**self.obj_to_dict())
obj.save()
models.signals.post_save.send(sender=obj, instance=self, created=True)
def obj_to_dict(self):
return {'pk': self.pk, 'name': self.name,
'i_company': self.i_company, 'is_reseller': False}
请告诉我我哪里做错了??
1 个回答
2
类似这样的:
Class ClientView(models.Model):
#...your model definition...
def your_def(sender, instance, created, **kwargs):
if created:
client_view = instance
#.....
post_save.connect(your_def, sender=ClientView)