2

シグナルを作成しました:

sig_published = Signal()

このシグナルはsignals.pyに配置され、models.pyにインポートします。

from signals import sig_published

モデルファイルのフッターで、テスト目的でデバッグ文字列を出力する関数に接続します。

def update_mode(sender, **kwargs):
    print "UPDATING"
sig_published.connect(update_mode, sender=MyModel)

ここで、save()-メソッドで、シグナルを送信しようとします。

sig_published.send(sender=self)

しかし、それは何も印刷しません。pre_saveのような組み込みシグナルを試してみると:

pre_save.connect(update_mode, sender=MyModel)

できます。何か案は?

4

1 に答える 1

5

あなたはモデルのインスタンスsenderと等しい信号を発していますが、接続中はクラスと照合しています。これら2つは同じオブジェクトではないため、受信機は信号を無視します。インスタンスではなくクラスを使用するコードの発行と比較できます。MyModel pre_save

于 2010-12-09T22:59:41.263 に答える