При загрузке файла в админке Django я пытаюсь создать и переименовать копию этого файла, используя сигнал.Однако я получаю следующую ошибку:
У объекта 'FileDescriptor' нет атрибута 'path'
модели
class Template(models.Model):
organization = models.ForeignKey(Organization, on_delete=models.CASCADE)
name = models.CharField(max_length=255)
def org_folder(self, filename):
path = "templates/%s/%s/%s" % (self.organization.name, self.name, filename)
return path
docxfile = models.FileField(upload_to=org_folder)
сигналов
@receiver(post_save, sender=Template)
def create_clean_docxfile(sender, instance, *args, **kwargs):
if sender is Template:
file = Template.docxfile.path
copyfile(file, 'temp.zip')
Любые рекомендации?
Обновление
По рекомендации Даниэля я исправил ошибку.Мне пришлось обновить сигнал до следующего:
@receiver(post_save, sender=Template)
def create_clean_docxfile(sender, instance, *args, **kwargs):
file = instance.docxfile.path
copyfile(file, 'temp.zip')