Django не экспортирует кверисеты, разделенные запятыми должным образом (csv)

Я пытаюсь создать вывод в формате CSV из одного объекта и следую официальной документации, однако вывод не соответствует ожиданиям.

Что я пробовал:

views.py:

def export_csv(request):
    if request.method == 'POST':
        project_id = request.POST['project_id']
        project = Project.objects.filter(pk=project_id).values()
        response = HttpResponse(content_type='text/csv')
        response['Content-Disposition'] = 'attachment; filename="export.csv"'
        writer = csv.writer(response)
        writer.writerow(project)
        return response
    return redirect(index)

Текущий выход:

"{'id': 4, 'project_code': '123456789', 'country': 'Norway', 'note': 'Lorem Ipsum'}"

Желаемый выход:

"id","project_code","country","note"
"4","123456789","Norway","Lorem Ipsum"

Как я могу отформатировать вывод, чтобы он выглядел как желаемый?

Вы получаете на выходе объект JSON, чтобы преобразовать его в файл cvs, вы можете использовать pandas

import pandas as pd
df = pd.read_json("your-JSON-object)
df.to_csv ("where to output your new csv", index = None)

Вот ссылки на документацию, если вы хотите узнать больше об этих функциях

pandas.read_json

pandas.DataFrame.to_csv

Вернуться на верх