Django экспорт данных в CSV-файл с CBV - PullRequest
0 голосов
/ 09 октября 2018

Я ищу export data из базы данных в разных форматах файлов (.csv, .json, .xls ...).

Идея должна быть такова: пользователь может перейти на новый шаблон и можетдоступ ко многим кнопкам загрузки.Когда он нажимает на один, он загружает файл в выбранном формате.

У меня есть это представление:

class Exports(ListView):
    template_name = 'exports.html'
    context_object_name = 'exports'

    def export_categories_csv(request):
        response = HttpResponse(content_type='text/csv')
        response['Content-Disposition'] = 'attachment; filename="categories.csv"'

        writer = csv.writer(response)
        writer.writerow(['id', 'name'])

        categories = Category.objects.all().values_list('id', 'name')
        for category in categories:
            writer.writerow(category)

        return response

    def get_context_data(self, **kwargs):
        self.export_categories_csv()
        return super(HomeView, self).get_context_data(**kwargs)

Мой файл urls.py выглядит так:

url(r'^exports$', Exports.as_view(), name='exports'),

И соответствующий шаблон:

{% load staticfiles %}
{% load i18n %}

{% block main %}

    <a href="{% url 'exports' %}" class="btn btn-default">Export all categories in CSV</a>

{% endblock main %}

Как я могу создавать разные кнопки и отображать эти кнопки на одной странице?И как я могу сделать ссылки между каждой кнопкой и каждой функцией внутри одного и того же класса.

До сих пор проблема заключалась в следующем:

В экспорте отсутствует QuerySet.Определите Exports.model, Exports.queryset или переопределите Exports.get_queryset ().

...