'Move the file from src to dst.'

def _move_file(self):

    src_file_name = self.file.name
    dst_file_name = self._meta.get_field(u'file').generate_filename(self, self.original_filename)
    if self.is_public:
        src_storage = self.file.storages[u'private']
        dst_storage = self.file.storages[u'public']
    else:
        src_storage = self.file.storages[u'public']
        dst_storage = self.file.storages[u'private']
    self.is_public = (not self.is_public)
    self.file.delete_thumbnails()
    self.is_public = (not self.is_public)
    src_file = src_storage.open(src_file_name)
    src_file.open()
    self._file_data_changed_hint = False
    self.file = dst_storage.save(dst_file_name, ContentFile(src_file.read()))
    src_storage.delete(src_file_name)
