DJANGO рендеринга в PDF, QUERYSET - PullRequest
0 голосов
/ 24 января 2019

Я работаю над моим администратором django и пытаюсь сделать 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

Проблема только в том, чтобы показать мой набор запросов и идентификатор, я хочу показать имя набора запросов, а не идентификатор. кто-нибудь может мне помочь?

Мой 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>

1 Ответ

0 голосов
/ 24 января 2019

Это совсем не правильный способ сделать это. Вы должны удалить все эти 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 %}
...