我正在尝试检测对 ImageField 的更改,以便以编程方式将更改与 Hg 同步。包含 ImageField 的模型正在使用 Django 多语言进行本地化,因此我必须单独检测每个字段的更改,而不是假设文件每次都更改。
我正在使用 pre 和 post save 信号来完成此操作,将实例保存在 pre-save 中并检测 post-save 中字段值的变化。这适用于使用不同文件名的图像添加、删除或更改图像时。但是,当我上传具有相同文件名的图像时,我的代码无法检测到图像实际发生了变化,因此没有文件更改与 Hg 同步。
我希望能够为旧文件生成校验和(很容易完成,因为我知道它在 presave 实例中的位置),并将其与新文件的校验和进行比较(不像试图从字段值将我带到旧文件)。
如果有办法让我找到新上传的文件(大概在内存中,因为 Django 不会将文件临时保存在 2.5MB 以下),并将其保存到临时目录,我很容易为它生成校验和. 但是,我不确定从哪里获取文件。
在 post_save 信号期间我可以从哪里获取文件?还是有另一种我没有想到的完成这种变化检测的方法?
谢谢,丰富