*Django 1.11*

When FileUpdate is called, I substitute the old file with a new one. I'd 
like to handle the old file. Namely move it to some other directory.


Could you have a look at the picture below. New file is called "C book 
1.pdf". Existing file is called 
"4_Oracle_Database_11g_PLSQL_Fundamentals_PLSQL.pdf".

<https://lh3.googleusercontent.com/-ypH3wS4KQVM/WQ-pNd2VtgI/AAAAAAAAA5s/FD3AVgsbOHsUhZtSJngR6GcYoncYiN4-QCLcB/s1600/Screenshot%2Bfrom%2B2017-05-07%2B22-46-00.png>

But at the breakpoint (see comment in form_valid), old_file_name = C book 
1.pdf.

But I can't catch why. I call super(FileUpdate, self).form_valid(form) in a 
couple of lines. And only there self.object = form.save().


At the breakpoint I expect self.object to be the unchanged object. Existing 
one.


*Could you help me understand how to catch the file name of the old file.*



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)

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-users+unsubscr...@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/36d54c66-270b-4ca5-beda-76c7f9865caf%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to