Python 如何在模型保存功能中检测文件是否已更改
当使用现有文件更新记录时,如果文件已更改,我需要从S3存储桶中删除旧文件 在Django中,如何检测文件是否已更改 这是我尝试过的(未经测试),但Django是否有一些魔法内置于此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
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):