Django - 保存时的图像后期处理

时间:2011-02-17 23:48:53

标签: django

如果我希望能够在上传图像后“后处理”图像,请将其裁剪为大小并应用一些压缩。就目前而言,我使用post_save信号进行此操作,当模型保存时,我正在访问文件,应用后期制作并保存原始文件。

我只是在将post保存信号的创建参数设置为true时才这样做,以避免每次更新模型时不必要的图像处理。

问题

当更新现有实例的图像字段时,将跳过图像的后处理,因为创建的标志为false。

如果ImageField已更改,我怎样才能将模型设置为仅对图像应用后处理,即使模型已经创建? 此应用可能并不总是与django admin 一起使用,因此覆盖imagefield_save方法无法正常工作。

希望有人可以提供帮助!

1 个答案:

答案 0 :(得分:0)

这个问题来自很久以前,所以可能不再实际了?

你有没看过:

pre_save.connect(before_mymodel_save, sender=MyModel)

查看the signal documentation of django

你创建了一个函数before_mymodel_save,你可以尝试在那里做任何事情。如果您在帖子中使用保存或预保存功能:如果您将MyModel对象保存在此功能中(并再次连接),请确保断开信号,以避免无限循环。