Я хочу использовать систему шаблонов django для вывода данных в формате csv, которые выглядят так:
!connection%block
!dosomething
!dosomethingelse
My,Header,Row,Which,Is,Comma,Seperated
All,My,Comma,Seperated,Data
All,My,Comma,Seperated,Data
All,My,Comma,Seperated,Data
All,My,Comma,Seperated,Data
!Footerblock
!that has footer information
Фактический шаблон выглядит так:
!connection%special@oracleconnectionstring
id,account,product,quantity,price,date
{% for r in records %}
{{ r.id }},{{ r.account }},{{ r.product }},{{ r.quantity }},{{ r.price }}
{% endfor %}
!endtransactions
Документация для CSV рекомендует использовать модуль csv или шаблон.Мои конкретные потребности лучше подходят для шаблона, потому что некоторые поля модели нуждаются в некоторой манипуляции с использованием библиотеки тегов, которую я создал.
На мой взгляд это просто
result['transactions'] = Transasctions.objects.all()
rendered = render_to_string('trans.csv', result)
response = HttpResponse(rendered , mimetype='text/csv')
response['Content-Disposition'] = 'attachment; filename=trans.csv'
return response
Однако отображаемый шаблон не имеет возможности фактически выводить символы новой строки DOS CRLF, поэтому весь файл представляет собой одну длинную строку!Должен быть способ вывода символа \ r \ n ...