Стратегии загрузки результата запроса в django

У меня есть страница на django, где я делаю запрос к базе данных. Я хочу загрузить результат в формате csv - но, как я знаю, невозможно добавить две кнопки/функции для одной страницы.
Моим решением было бы добавить ссылку на новую страницу или новое окно, где я снова покажу таблицу результатов и помещу туда кнопку, но сначала я хотел бы спросить, есть ли более элегантный способ сделать это?
view.py

def FilterView(request):
    if title_exact_query != '' and title_exact_query is not None:
        qs = ExperimentFiles.objects.filter(Q(donor_id=title_exact_query)).values().order_by(
            'record_name__date_of_measurement')
        context = {
                'queryset': qs,
        }
        return render(request, "search.html", context)

Можно использовать POST-запрос, когда вы хотите загрузить csv, чтобы вы могли легко использовать то же представление, реализуя оператор if для метода запроса.

def FilterView(request):
    if title_exact_query != '' and title_exact_query is not None:
        qs = ExperimentFiles.objects.filter(Q(donor_id=title_exact_query)).values().order_by(
            'record_name__date_of_measurement')
        if request.method =="POST":
           
            csv = to_csv(qs)  #function for csv creation
            response = HttpResponse(csv, content_type='text/csv')
            response['Content-Disposition'] = 'attachment; filename=stockitems_misuper.csv'
            return response 
           
        context = {
                'queryset': qs,
        }
        return render(request, "search.html", context)
Вернуться на верх