>source

django에 데이터베이스를 쿼리하는 페이지가 있습니다. 결과를 csv-로 다운로드하고 싶지만 한 페이지에 두 개의 버튼/기능을 추가할 수 없습니다.
내 해결책은 새 페이지나 새 창에 대한 링크를 추가하는 것입니다. 여기서 결과 테이블을 다시 표시하고 거기에 버튼을 둡니다. 하지만 먼저 더 우아한 방법이 있는지 묻고 싶습니다. ?
보기.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)

  • 답변 # 1

    요청 메소드에 if 문을 구현하여 동일한 보기를 쉽게 사용할 수 있도록 csv를 다운로드할 때 POST 요청을 사용할 수 있습니다.

    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)
    

  • 이전 delphi : 델파이 base45/zlib/cbor/cose 문제
  • 다음 Javascript를 사용하여 GitHub의 파일 폴더를 반복하는 방법은 무엇입니까?