web-dev-qa-db-ja.com

モデルを保存した後、Djangoで関数を呼び出す

コンテキスト:私はブログを作成しています。このブログは、Djangoモデルを介してデータベースに記事に関する情報を保存します。このファイルに付随するすべてのアセットのアーカイブを取得するFileFieldがこのモデルにあります。管理者を通じて、記事を追加します。地点。

オブジェクトがモデルに保存された直後に、このファイルを解凍する関数を呼び出したいと思います。この関数はどこに書きますか?

8

Djangoに含まれているシグナルディスパッチャーを使用できます。

from Django.db.models.signals import post_save
from Django.dispatch import receiver

from myapp.models import Blog

@receiver(post_save, sender=Blog)
def my_handler(sender, **kwargs):
    print('post save callback')

詳細については、 https://docs.djangoproject.com/en/stable/ref/signals/#post-save を参照してください。

16

たぶんあなたはあなたのアプリ/モデルでpost_saveシグナルを使うことができます:

https://docs.djangoproject.com/en/1.10/ref/signals/#post-save

2
XaviP