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

时间:2017-03-31 16:40:02

标签: django django-models django-admin

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

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

2 个答案:

答案 0 :(得分:12)

您可以使用Django中包含的信号调度程序。

SELECT obj.NAME AS TBL,trg.name,sm.definition,'<br>'
FROM SYS.OBJECTS obj
LEFT JOIN (SELECT trg1.object_id,trg1.parent_object_id,trg1.name FROM sys.objects trg1 WHERE trg1.type='tr' AND trg1.name like 'update%') trg
 ON obj.object_id=trg.parent_object_id
LEFT JOIN (SELECT sm1.object_id,sm1.definition FROM sys.sql_modules sm1 where sm1.definition like '%suser_sname()%') sm ON trg.object_id=sm.object_id
WHERE obj.type='u'
ORDER BY obj.name;

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

答案 1 :(得分:1)

也许您可以在app / model中使用post_save信号:

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