Python 如何在模型保存功能中检测文件是否已更改

Python 如何在模型保存功能中检测文件是否已更改,python,django,models,Python,Django,Models,当使用现有文件更新记录时,如果文件已更改,我需要从S3存储桶中删除旧文件 在Django中,如何检测文件是否已更改 这是我尝试过的(未经测试),但Django是否有一些魔法内置于此 def save(self, *args, **kwargs): existing_file = Asset.objects.get(pk=self.pk) if existing_file != self.file: # remove from s3 before saving t

当使用现有文件更新记录时,如果文件已更改,我需要从S3存储桶中删除旧文件

在Django中,如何检测文件是否已更改

这是我尝试过的(未经测试),但Django是否有一些魔法内置于此

def save(self, *args, **kwargs):

    existing_file = Asset.objects.get(pk=self.pk)
    if existing_file != self.file:
        # remove from s3 before saving the new file

==
=
只会比较模型实例的主键(请查看
\uuuu eq\uuuuuuuuu()
\uuuuuu ne\uuuuuuuu()
方法)

比较模型实例的所有字段的一种方法是同时调用:

您还可以指定
字段
排除
参数来控制要转储到字典的字段,在您的情况下,基本上是要比较哪些字段

希望有帮助

from django.forms.models import model_to_dict

if model_to_dict(existing_file) != model_to_dict(self.file):