Django的1.11更新的FileField:什么是旧的文件的名称
当FileUpdate被调用时,我代替旧的文件与新的。 我想处理旧文件。即将其移动到其他目录。
你可以看看下面的图片。新文件被称为“C书1.pdf”。现有文件被称为“4_Oracle_Database_11g_PLSQL_Fundamentals_PLSQL.pdf”。
但在断点处(请参阅form_valid中的注释),old_file_name = C book 1.pdf。
但我不明白为什么。我在几行中调用超级(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)