1

CUSTOMER 用のテーブルと CUSTOMER_PAYMENT 用のテーブルがあります (属性の顧客、金額、期日、支払日) 。CUSTOMER に値を挿入すると、CUSTOMER_PAYMENT の値が自動的に生成されます。毎月の請求情報のようなものです

顧客 A を CUSTOMER に挿入すると、

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 にはトリガーがありません。Google で検索しようとしましたが、方法がわかりません。

4

2 に答える 2

1

2つの方法があります:

  • 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 に答える