У меня возникла новая небольшая проблема с API-интерфейсом Python между Django и LogicalDOC. Я создаю папку внутри LogicalDOC, тогда я хотел бы сохранить файл pdf в этой новой папке с folderId
.Вставить номер как folderID
Но, если это похоже на работу, потому что синтаксис хорош с моей точки зрения: ни один файл PDF не отображается.
создать папку, я поднимаю свой идентификационный номер: 348930, например, с помощью команды data["id"]
и вставить str(data["id"])
в FolderId
, когда я хочу, чтобы сохранить свой файл в формате PDF в новой папке.
Новая папка создана и работает хорошо, но файл pdf не сохраняется внутри. Что-то не так ?
Это мой сценарий:
@login_required
def BirthCertificate_PDF(request, id) :
birthcertificate = get_object_or_404(BirthCertificate, pk=id)
data = {"birthcertificate" : birthcertificate}
template = get_template('BC_raw.html')
html = template.render(Context(data))
filename_directory = str(BirthCertificate.objects.get(pk=id).lastname.encode('utf-8')) + "_" + str(BirthCertificate.objects.get(pk=id).firstname.encode('utf-8')) + "_" + str(BirthCertificate.objects.get(pk=id).birthday)
filename = 'Acte_Naissance_' + filename_directory + '.pdf'
path = '/Users/valentinjungbluth/Desktop/Django/Individus/' + filename
file = open(path, "w+b")
pisaStatus = pisa.CreatePDF(html.encode('utf-8'), dest=file, encoding='utf-8')
file.seek(0)
pdf = file.read()
if pdf :
payload = '{{ "name":"{0}", "parentId":3309569 }}'.format(filename_directory) #Fix parent folder
url = 'http://localhost:8080/services/rest/folder/create'
headers = {'Content-Type': 'application/json', 'Accept': 'application/json'}
resp = requests.post(url, data=payload, headers=headers, auth=('admin', 'admin'))
rbody = resp.content
data = json.loads(rbody)
print data["id"] #Get ID from the new folder
payload = '{{ "language":"fr","fileName":"{0}","FolderId":'+str(data["id"]) +'}}'.format(filename) #save pdf file inside the new folder thanks to his ID
upfile = path
files = {
'document': (None, payload, 'application/json'),
'content': (os.path.basename(upfile), open(upfile, 'rb'), 'application/octet-stream')
}
url = 'http://localhost:8080/services/rest/document/create'
headers = {'Content-Type': 'multipart/form-data'}
r = requests.post(url, files=files, headers=headers, auth=('admin', 'admin'))
context = {"birthcertificate":birthcertificate,
"path":path}
return render(request, 'BC_PDF.html', context)
file.close()
return HttpResponse(pdf, 'application/pdf')
Это захват экрана, который показывает, что folderID должно быть: 3538970 Это число также определяется по формуле: data["id"]
Попробуйте указать folderid как второй аргумент формата, например: 'payload = '{{" language ":" fr "," fileName ":" {0} "," FolderId ":" {1} "}} '. format (filename, str (data [" id "]))' – neverwalkaloner
@neverwalkaloner По-прежнему такая же ошибка, мой файл PDF не сохраняется в моей новой папке, которая была только что создана. Я ищу документацию по формату. Я принял ваше изменение до того, как вы его написали;) – Deadpool
Хорошо, это была синтаксическая ошибка: это 'folderId', а не' FolderId' ... Ваш ответ хорошо работает! Как и раньше: сделайте ответ, и я проверю его? – Deadpool