在django中更新了文件名

时间:2018-01-22 08:27:16

标签: python django

这是一个管理表单处理程序,例如我在django管理面板中上传了一个test.txt文件:

def save_model(self, request, obj, form, change):
    if 'file' in form.changed_data:
        print("file has changed: ")
        print(obj.file)
    else:
        print("file has not changed")
    super(FileAdmin, self).save_model(request, obj, form, change)

这里我从上传表单中获取原始文件名,但事实上,如果已经存在具有此名称的文件,则文件将以其他名称保存,但在上面的代码中,我在所有情况下只获得原始名称,如何获取已保存的已更改/更新文件名?..

1 个答案:

答案 0 :(得分:1)

" _somehash"当他看到目标目录中已存在同名文件时,您的项目filestorage会添加部分。保存模型实例时会发生这种情况,因此如果您只需要阅读" final"名称,您可以从your (saved) model field's .name attribute获取它(我假设您当然使用FileField)。