Как правильно сохранить экземпляр FileField в Django

Я надеюсь, что кто-нибудь сможет сказать мне, что я делаю неправильно, и направить меня в правильном направлении.

Итак, я создаю массив объектов Model и затем делаю bulk_create в конце, чтобы сохранить их в базе данных. Единственное, с чем я сталкиваюсь, это то, что после добавления FileField я не могу точно определить, как мне нужно связать данные с этим полем. Файлы не попадают в папку upload_to и не ассоциируются с самой записью. Добавлю также, что я использую PyPDf2 для создания PDF файлов, прежде чем пытаться связать их с экземпляром моей модели

Итак, чтобы дать вам представление о том, что я пытаюсь сделать. Я запускаю этот код для создания PDF-файлов.

if pdf_file_name is not None:
            num_pages_current_doc = page['pageRange'][-1]
            input_pdf = PdfFileReader(open(pdf_file_name, 'rb'))
            output_pdf = PdfFileWriter()
            for _ in range(num_pages_current_doc):
                output_pdf.addPage(input_pdf.getPage(page_counter))
                page_counter += 1
            with open(str(uuid.uuid4())+'.pdf', 'wb') as output:
                output_pdf.write(output)
                logging.info(f'Wrote filename: { output.name }')

Сохраненный файл я затем хочу ассоциировать с экземпляром модели ниже этого, код выглядит примерно так:

document = document(
            location=location,
            Field2=Field2, etc etc .....
            pdf = ???

Я не знаю, как установить поле для этой части pdf, я пробовал использовать метод File() для этого. Пробовал ставить просто output.name для поля, не уверен, как заставить это работать.

Может ли кто-нибудь дать мне некоторое представление?

Спасибо!

См. метод FieldFile.save(name, content, save=True) в документации django. https://docs.djangoproject.com/en/3.2/ref/models/fields/#filefield-and-fieldfile

Вернуться на верх