django - DJANGO 渲染为 PDF , QUERYSET
问题描述
我正在使用我的 django-admin,我正在尝试将我的 obj 渲染为 pdf。这是我的定义:
def Imprimir(self, request, obj):
data = {
'id':obj.values_list('id', flat=True),
'freguesia': obj.values_list('freguesia',flat=True),
'rua': obj.values_list('rua',flat=True),
'porta': obj.values_list('porta',flat=True),
'tavaria':obj.values_list('tipo_avaria',flat=True),
}
pdf = render_to_pdf('daa/imprimir/avarias_pdf.html', data)
return HttpResponse(pdf, content_type='application/pdf')
https://i.stack.imgur.com/22V1I.png
问题只是显示我的查询集和 ID,我想显示查询集的名称而不是 ID。任何人都可以帮助我吗?
我的 avarias_pdf.html
<table style="width:100%">
<tr>
<th>ID:</th>
<th>Freguesia:</th>
<th>Rua:</th>
<th>Porta:</th>
<th>Tipo avaria:</th>
</tr>
<tr>
<td>{{id}}</td>
<td>{{freguesia}}</td>
<td>{{rua}}</td>
<td>{{porta}} </td>
<td>{{tavaria}}</td>
</tr>
</table>
解决方案
这根本不是正确的方法。您应该删除所有这些values_list
调用,并遍历模板中的查询集。
def Imprimir(self, request, obj):
data = {'obj': obj}
pdf = render_to_pdf('daa/imprimir/avarias_pdf.html', data)
return HttpResponse(pdf, content_type='application/pdf')
...
{% for item in obj %}
<tr>
<td>{{ item.id }}</td>
<td>{{ item.freguesia }}</td>
<td>{{ item.rua }}</td>
<td>{{ item.porta }} </td>
<td>{{ item.tavaria }}</td>
</tr>
{% endfor %}
推荐阅读
- c# - AssemblyLoadContext 是否隔离静态变量?
- python - 数据分组问题,但基于“窗口”
- php - 编译失败:偏移量 12 处的字符类范围无效
- javascript - 有没有办法 console.log 一个 html 对象的内容?
- reactjs - API调用一旦执行就返回promise对象?
- mysql - 如何将我的路由参数与@mysql/x devAPI 连接起来?
- c# - 如何按照 Fluent Builder 模式使用回调将值添加到上下文
- mysql - SQL 选择多于 1 个联结的地方
- java - 如何解决连接有空值?
- ios - 我们是否需要通过应用内购买来接受付款?