【发布时间】:2017-10-05 18:45:55
【问题描述】:
Django 1.11
当调用 FileUpdate 时,我用新文件替换旧文件。 我想处理旧文件。即移动到其他目录。
你可以看看下面的图片。新文件称为“C book 1.pdf”。现有文件名为“4_Oracle_Database_11g_PLSQL_Fundamentals_PLSQL.pdf”。
但在断点处(见 form_valid 中的注释),old_file_name = C book 1.pdf。
但我不明白为什么。我在几行中调用了 super(FileUpdate, self).form_valid(form)。而且只有 self.object = form.save()。
在断点处,我希望 self.object 是未更改的对象。现有一个。
您能帮我了解如何获取旧文件的文件名吗?
class UserFile(models.Model):
uuid = models.UUIDField(primary_key=False, default=uuid.uuid4,
editable=False)
user_file = models.FileField(verbose_name=_("file"),
max_length=255,
upload_to=get_file_path)
class FileUpdate(UpdateView):
model = UserFile
form_class = FileForm
def form_valid(self, form):
"""
Delete old file.
"""
parent_directory = get_parent_directory_of_file(self.object)
old_file_name = self.object.user_file.name # Breakpoint
self.object.user_file.delete()
return super(FileUpdate, self).form_valid(form)
【问题讨论】:
标签: django