Как изменить pdf на сервере, django
Добрый день всем. У меня есть проект django, запущенный на сервере linux с apache2. Мой код делает следующее: заменяет PDF файл. Когда пользователь заполняет форму, она принимается, затем заменяет соответствующие поля в файле и сохраняет() его. Локально это работает отлично, но когда я пробую это на сервере, pdf не перезаписывается, потому что он всегда отображает тот же PDF вместо измененного.
Поскольку локально работает правильно, я подумал, что дело может быть в маршрутах или разрешениях. В первом варианте я уже проверил маршруты, они правильные, так что дело не в этом. Другая вещь, которая может не позволять перезаписывать, это права доступа, поэтому я дал права chmod 777 файлу PDF, чтобы посмотреть, сработает ли это, но это не сработало. Файл по-прежнему не изменяется.
Этот код добавляет соответствующие поля в pdf
def generate_attached_standard_pdf(attachment_data): try: name=attachment_data['creditor'] w, h = letter # ОПРЕДЕЛИТЬ КОНФИГУРАЦИЮ PDF c = canvas.Canvas('anexoA.pdf', pagesize=letter) c.setTitle('Anexo {}'.format(name)) pdfmetrics.registerFont( TTFont('Lato', BASE_DIR + "/recursos/fonts/Lato-Regular.ttf"), ) pdfmetrics.registerFont( TTFont('Lato-Bold', BASE_DIR+"/recursos/fonts/Lato-Bold.ttf"), )
c.save()
return {
'success': True,
'message': 'PDF CREADO'
}
except Exception as e:
print(e)
return {
'success': False,
'message': e
}
Это другой код из views.py
if form.is_valid():
ctx = {
'form': form, 'pay_method':pay_method, 'payment_date':payment_date, 'principal_payment_date':principal_payment_date, 'return_end_date':return_end_date,
'creditor':creditor, 'contract_date':contract_date, 'days':days, 'amount':amount,
'rate':rate,'credit_2':credit_2,}
print(pay_method)
if pay_method == 'e':
AttachedPdf.generate_attached_standard_pdf(attachment_data=ctx)
else:
AttachedPdf.generate_attached_dynamic_pdf(attachment_data=ctx)
with open('/Server/django-project/anexoA.pdf', 'rb') as pdf:
response = HttpResponse(pdf.read(),content_type='application/pdf')
response['Content-Disposition'] = 'filename=some_file.pdf'
return response
Большое спасибо.