0

シグナルを送信するモデルがあります。

class WMTransaction(models.Model):
    def save(self, *args, **kwargs):
        if self.status == 'completed':
            self.completed = datetime.datetime.now()
            try:
                old = WMTransaction.objects.get(pk=self.pk)
                if old.status == 'processing':
                    print 'sending signal'
                    payment_done.send(self)
            except:
                pass
        super(WMTransaction, self).save(*args, **kwargs)

また、2つのモジュールにレシーバーがあります。

@receiver(payment_done, dispatch_uid="make_this_signal_unique", weak=False)
def subscribe(sender, **kwargs):
    print 'subscribing'
    # processing

と:

@receiver(payment_done, dispatch_uid="this_signal_is_also_unique", weak=False)
def buy(sender, **kwargs):
    print 'buying'
    # processing

問題は、サブスクライブ関数が呼び出され、購入が呼び出されないことです...両方のモジュールがインストールされたアプリにあり、これらのモジュールの他の関数は正しく機能します。信号の問題は何ですか?

4

1 に答える 1

1

module_Bがインストールされ、の定義がbuy実際に実行されましたか?payment_done.receivers行の前に確認してくださいpayment_done.send

于 2012-04-08T08:41:36.807 に答える