django сигнализирует, как использовать «экземпляр»

Я пытаюсь создать систему, которая позволяет пользователю загружать zip-файл, а затем извлеките его с помощью сигнала post_save.

class Project:
    ....
    file_zip=FileField(upload_to='projects/%Y/%m/%d')

@receiver(post_save, sender=Project)
def unzip_and_process(sender, **kwargs):
    #project_zip = FieldFile.open(file_zip, mode='rb')
    file_path = sender.instance.file_zip.path
    with zipfile.ZipFile(file_path, 'r') as project_zip:
        project_zip.extractall(re.search('[^\s]+(?=\.zip)', file_path).group(0))
        project_zip.close()

unzip_and_process метод отлично работает, если указаны правильные пути к файлам (в этом случае мне нужно предоставить instance.file_zip.path . Однако я не смог получить / установить экземпляр с сигналами. Документация Django о сигналах не ясна и не содержит примеров. Итак, что мне делать?

15
задан Umur Kontacı 9 August 2011 в 06:28
поделиться