1

再利用できる PowerPoint テンプレートなどのファイルをダウンロードできる Web サイトを持っています。

「ダウンロード」と呼ばれるこれらのファイルの情報と場所を格納する列をモデルに追加しました。その列で、ファイルがダウンロードされた回数を追跡するためのカウンターとして使用したいと思います。

これについてどうすればいいですか?ページでの GET リクエストでしょうか。基本的に、ファイルへのリンクを提供するだけで、ダウンロードが自動的に開始されるため、リンクがクリックされたという事実をモデルに中継する方法がわかりません。

どうもありがとう :-)

4

3 に答える 3

2

GET 要求を処理するビューを作成すると、更新コードをそのビューに入れることができます。Django アプリがアップロード自体を処理していない場合は、データベースのカウンターを更新した後、ダウンロード リンクにリダイレクトするだけのビューを作成できます。

于 2012-10-07T20:24:04.040 に答える
2

これを行うにはいくつかの方法があります。

  • ダウンロードを追跡しながら、すべてのファイルを「プロキシ」するカスタムビューを作成します
  • 上記とほとんど同じことを行うミドルウェアを作成し、どのリクエストを記録するかをフィルタリングします
  • ..しかし、収集された静的ファイルのダウンロードをカウントしたい場合、上記のいずれも適用できません。これは、django を通過せずに、http サーバーによって直接提供されます。この場合、Web サーバーのログからダウンロード数を取得します。ウェブサーバーがログをデータベースに保存できるかどうかを確認してください。そうでない場合は、ログファイルを解析し、django アプリケーションからアクセスできる db にカウントを保存する cron 実行スクリプトを作成します。
于 2012-10-07T20:31:24.793 に答える
1

redShadow が言ったように、プロキシ ビューを作成できます。このビューは、mod_xsendfile (Web サーバーとして apache を使用している場合) を介してファイルを提供し、ダウンロードのカウンターを設定できます。

于 2012-10-07T22:16:08.480 に答える