2017-09-27 3 views
1

로그인이 필요한 간단한 페이지를 만들고 싶습니다. 클릭하면 csv 파일을 다운로드 할 수있는 버튼이 있습니다.Django 버튼을 http 응답에 연결하는 방법

아래 코드는 제대로 작동하지만 파일을 직접 다운로드합니다.

@login_required(login_url='/admin/login/') 
def index(request): 

    response = HttpResponse(content_type='text/csv') 
    response['Content-Disposition'] = 'attachment; filename="data.csv"' 

    writer = csv.writer(response) 
    writer.writerow(['First row', 'Foo', 'Bar', 'Baz']) 
    writer.writerow(['Second row', 'A', 'B', 'C', '"Testing"', "Here's a quote"]) 

    return response 

버튼에 대한 단추 및 링크보기를 만들 수 있지만 어떻게 위의 응답을 반환합니까?

<form action="#" method="get"> 
<input type="submit" value="Click" name="mybtn"> 
</form> 
+1

"직접 파일을 다운로드하는 중"에 무엇이 잘못된 것인지 잘 모름 당신이 원하는 것이 어떻게 다른가요? –

+0

링크를 방문하면 파일이 다운로드되지 않고 단추를 클릭하기 만하면 다운로드됩니다. – garg10may

답변

0

CSV 파일을 반환하는 별도의 뷰를 작성하고 그보기로 제출 직접 양식을 설정

이 경우
<form action="{% url 'my_csv_view' %} method="get"> 
    <input type="submit" value="Click" name="mybtn"> 
</form> 

, CSV 파일의 이름 뷰에 의해 제공 될 것이다 'my_csv_view',하지만 당신은 그것을 당신에게 더 잘 맞는 것으로 바꿀 수 있습니다.