我尝试在管理面板中添加通过 PDF 查看订单的选项,但收到错误,我不知道原因也不知道如何修复它。这就是我一步一步做的。现在的问题是,我已尝试重新启动所有内容,但仍然收到错误消息。$ pip install weasyprint django-import-export然后我将其添加到已安装的应用程序中'import_export', 这是 admin.pydef order_pdf(obj): return mark_safe('<a href="{}">PDF</a>'.format(reverse('orders:admin_order_pdf', args=[obj.id])))order_pdf.short_description = 'Order PDF'class OrderAdmin(ImportExportActionModelAdmin): list_display = ['id', order_pdf]这是views.py@staff_member_requireddef admin_order_pdf(request,order_id): Order = get_object_or_404(order,id=order_id) html = render_to_string('order/pdf.html',{'order':Order}) response = HttpResponse(content_type='application/pdf') response['Content-Disposition'] = 'filename="order_{}.pdf"'.format(Order.id) # weasyprint.HTML(string=html).write_pdf(response,stylesheets=[weasyprint.CSS(settings.STATIC_ROOT + 'css/pdf.css')]) weasyprint.HTML(string=html).write_pdf(response,stylesheets=[weasyprint.CSS(settings.STATIC_ROOT)]) return response这是 url.py path('admin/order/(?P<order_id>\d+)/pdf/$', views.admin_order_pdf, name='admin_order_pdf')
1 回答
小怪兽爱吃肉
TA贡献1852条经验 获得超1个赞
weasyprint 或 django-import-export 依赖于 libcairo 是一个共享库。有些 python 包会自动编译所有依赖项,但情况并非如此。如果您不想自己弄清楚如何安装 libcairo,我建议您使用 Anaconda,它在 Windows 上安装依赖项方面做得很好。
https://www.anaconda.com/products/individual
我验证了 Anaconda 具有 cairocffi 包,它是触发错误的 libcairo 周围的 python 包装器。
https://anaconda.org/conda-forge/cairocffi
添加回答
举报
0/150
提交
取消