Как правильно сохранить экземпляр 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