我正在我的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>
答案 0 :(得分:0)
这根本不是正确的方法。您应该删除所有这些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 %}