【发布时间】:2018-10-12 06:55:06
【问题描述】:
我可以在 django 中为相同的操作执行两个预保存信号吗,只是发送者在两种情况下都会不同...
这是我的模型:
class Ledger1(models.Model):
creation_Date = models.DateField()
name = models.CharField(max_length=32)
group1_Name = models.ForeignKey(Group1,on_delete=models.CASCADE,blank=True,null=True)
Opening_Balance = models.DecimalField(max_digits=19,decimal_places=2,blank=True)
Closing_balance = models.DecimalField(max_digits=10,decimal_places=2,blank=True,null=True)
class Journal(models.Model):
Date = models.DateField()
By = models.ForeignKey(Ledger1,on_delete=models.CASCADE,related_name='Debitledgers')
To = models.ForeignKey(Ledger1,on_delete=models.CASCADE,related_name='Creditledgers')
Debit = models.DecimalField(max_digits=10,decimal_places=2)
Credit = models.DecimalField(max_digits=10,decimal_places=2)
这是我以前做过的:
@receiver(pre_save, sender=Ledger1)
def update_user_closing_balance(sender,instance,*args,**kwargs):
debit = instance.Debitledgers.aggregate(debit=Sum('Debit'))['debit']
credit = instance.Creditledgers.aggregate(credit=Sum('Credit'))['credit']
instance.Closing_balance = instance.Opening_Balance + debit - credit
我想做一个类似的预保存信号,但发件人将是日记...我可以在 django 中为相同的功能提供两个信号吗?
我的意思是说当分类帐更新时,期末余额将自动更新,我已经完成了......
但我也想做一些事情,比如当日志更新时,期末余额也会更新......
有人知道吗?
【问题讨论】:
-
你能告诉我我应该在那里表演什么吗?
-
我可以在 sender=journal 的 pre_save 信号中调用“update_user_closing_balance”函数吗?
-
调用该函数不起作用,只触发pre_save
标签: django django-models django-signals