保存模型后在Django中调用函数

Abh*_*ddy 7 django django-models django-admin

背景:我正在创建一个博客.该博客通过Django模型存储有关数据库中文章的信息.我在所述模型中有一个FileField,它存档了与该文件一起使用的所有资产.我通过管理网站添加文章.

我想调用一个函数,在将对象保存到模型后立即解压缩该文件.我在哪里写这个功能?

Kir*_*nov 16

您可以使用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')
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请参阅https://docs.djangoproject.com/en/1.10/topics/signals/#post-save.