1

クラスのメソッドであるリスナーで post_save を使用できますか?

私が欲しいもの:

class UpdCatalog(models.Model):
    file = models.FileField(upload_to="catalog/")

class SomeClass:
    def codeType(text):
        row_code = text[0], text[1]
        return row_code, row_type

    def main(sender, instance, created, **kwargs):
        text = ["q", "w", "e". "r"]
        row_code, row_type = codeType(text)

signals.post_save.connect(SomeClass.main, sender=UpdCatalog)

実行しようとすると、このコードmainは呼び出されません。エラーはありません。

リスナーがクラスにない場合、すべて正常に動作します。

4

1 に答える 1

1

関数とインスタンスメソッドの違いを勉強する必要があります。あなたの場合、staticmethodデコレータを使用できます。

class SomeClass:
    ...

    @staticmethod
    def main(sender, instance, created, **kwargs):
        text = ["q", "w", "e". "r"]
        row_code, row_type = codeType(text)
于 2012-09-15T10:43:35.013 に答える