2016-04-27 3 views
0

私のアプリケーションは、XLS形式でダウンロードできるレポートを生成する必要があります。私はDjango Rest Frameworkを使用してREST APIを構築しました。レポート生成のエンドポイントがあります。これは、JSON本体(レポートのパラメータ:fromtoなどのようなPOST要求を受け入れますが、JSONオブジェクトで表されるデータもあります)を取得し、JSON結果を返します。私は正常にJavascriptからそれを使用し、HTMLテーブルとしてレポートをレンダリングし、うまく動作します。ユーザーがREST APIからレポートを保存する方法を教えてください。

私の問題は、適切なファイル名(myawesomereport.04.12-10.12.xlsのような.xlsファイル)としてレポートを保存する必要があるということです。JSデータのURLアプローチを試しましたが、わかっている限り、あなたがそのオプションを持っているならば(aタグのdownload属性を設定することを除いて、しかしそのサポートは限られているので、行く方法ではありません)。私はAPIエンドポイントのurlが適切に形成された新しいウィンドウを開くべきかもしれないXLSファイルを出力しますが、そのリクエストでJSONを送信する方法があるかどうか分かりません。

答えて

0

ヘッダーContent-Dispositionを使用してバックエンドにファイル名を設定することができます。フロントエンドでは標準の<a>タグを使用できます。 DRFで

、それは次のようになります。

response['Content-Disposition'] = 'attachment; filename={}'.format(
    file_name 
) 
+0

しかし、どのように私は、最初の場所でこの要求にJSONデータを供給することができますか? – Cracker

+0

POSTリクエストを使用してコンテンツをダウンロードするのはあまり一般的ではありません。 GETリクエストを使用して、あなたの引数をurl paramsとして渡すことができます。 または、独自のリンクを返すPOSTリクエストを使用して、 'window.open(data.url)'を使用して開くことができます。 – JoseKilo

関連する問題