我正在嘗試將畫布物件保存到我的 django 模型欄位檔案中,但它說“'畫布'物件沒有屬性'_committed'”。
p.setTitle(f"{patient.first_name} {patient.last_name}'s Report")
p.showPage()
p.save()
pdf:bytes =buffer.getvalue()
buffer.close()
response.write(pdf)
r = Result.objects.filter(score="12").update_or_create(file=p)
誰能幫我解決這個問題?
uj5u.com熱心網友回復:
“您必須將 django 的 File 物件的實體傳遞給以FileField.save()更改檔案欄位的內容。它的作業方式與其他型別的模型欄位略有不同。” 從這里參考
uj5u.com熱心網友回復:
在.update_or_create(…)[Django-doc]之后不能使用.filter(…)[Django-doc]。您可能想要的是使用:
Result.objects.update_or_create(
score='12',
defaults={'file': p}
)
但是,這不適用于p:p不是檔案,而是Canvas物件。您可以使用檔案名,或使用FieldFile物件 [Django-doc]。
uj5u.com熱心網友回復:
好吧,而不是使用
buffer =BytesIO()
buffer.close()
我用了
buffer.seek(0)
r = Result.objects.get(pk=result_id)
r.file.save(f"{d}.pdf", File(buffer))
它奏效了。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/343151.html
