【问题标题】:Calling a function in Django after saving a model保存模型后在 Django 中调用函数
【发布时间】:2017-08-26 00:32:19
【问题描述】:

背景:我正在写博客。该博客通过 Django 模型将文章信息存储在数据库中。我在所述模型中有一个 FileField,它包含该文件附带的所有资产的存档。我通过管理站点添加文章。

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

【问题讨论】:

  • 您可以在保存此对象的位置添加代码吗?
  • 这就是问题所在。我通过管理站点保存这些对象,所以我不知道代码在哪里或它看起来像什么。如果我能弄清楚它的保存位置和方式,我可以修改它以在之后立即调用我的函数。

标签: django django-models django-admin


【解决方案1】:

也许您可以在您的应用/模型中使用 post_save 信号:

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

【讨论】:

    【解决方案2】:

    您可以使用 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

    【讨论】:

    • MyModel 不应该是博客吗?
    猜你喜欢
    • 1970-01-01
    • 2015-10-16
    • 2014-10-21
    • 2018-08-07
    • 1970-01-01
    • 1970-01-01
    • 2023-03-23
    • 2013-05-11
    • 1970-01-01
    相关资源
    最近更新 更多