1

我有一个 CUSTOMER 表和一个 CUSTOMER_PAYMENT 表(带有属性客户、金额、到期日期和付款)。我希望当我在 CUSTOMER 中插入一个值时,会自动生成 CUSTOMER_PAYMENT 中的值。这就像每月的账单信息

在 CUSTOMER 中插入客户 A

CUSTOMER_PAYMENT
____________________________________
|CUSTOMER|AMOUNT|     DUE   | PAID  |
|  A     | 100  | 2011-01-15| False |
|  A     | 100  | 2011-02-15| False |
|  A     | 100  | 2011-03-15| False |

这是怎么做的?

Django 中没有触发器。我试图谷歌,但我找不到如何。

4

2 回答 2

1

两种方法

  • 在 post_save 信号中编写代码
  • 覆盖 save() 方法

信号

post_save.connect(CUSTOMER_post_save, sender = CUSTOMER , 
                 instance = instance, create = create) 

def CUSTOMER_post_save(sender, instance, **kwargs):
        if create:
            cd = CUSTOMER_PAYMENT()
            cd.amount = ....
            cd.save()

覆盖

class CUSTOMER(model.Model):
    ...    
    def save(self, *args, **kwargs):
        is_new = self.pk is None
        super(yourModel, self).save(*args, **kwargs)
        if is_new:
            cd = CUSTOMER_PAYMENT()
            cd.amount = ....
            cd.save()
于 2012-09-17T07:44:17.593 回答
0

发布保存信号可能是您正在寻找的东西

于 2012-09-17T07:37:37.647 回答