如果我希望能够在上传图像后“后处理”图像,请将其裁剪为大小并应用一些压缩。就目前而言,我使用post_save信号进行此操作,当模型保存时,我正在访问文件,应用后期制作并保存原始文件。
我只是在将post保存信号的创建参数设置为true时才这样做,以避免每次更新模型时不必要的图像处理。
问题
当更新现有实例的图像字段时,将跳过图像的后处理,因为创建的标志为false。
如果ImageField已更改,我怎样才能将模型设置为仅对图像应用后处理,即使模型已经创建? 此应用可能并不总是与django admin 一起使用,因此覆盖imagefield_save方法无法正常工作。
希望有人可以提供帮助!
答案 0 :(得分:0)
这个问题来自很久以前,所以可能不再实际了?
你有没看过:pre_save.connect(before_mymodel_save, sender=MyModel)
查看the signal documentation of django
你创建了一个函数before_mymodel_save,你可以尝试在那里做任何事情。如果您在帖子中使用保存或预保存功能:如果您将MyModel对象保存在此功能中(并再次连接),请确保断开信号,以避免无限循环。