コードで概説した方法が機能するはずです。他の保護されたリソースとまったく違いはありません。ビューは、ディスクからのファイル、データベースからのレコード、レンダリングされたテンプレートなどを提供できます。login_required デコレーターが他のビューへの不正アクセスを防ぐのと同様に、保護されたメディアを提供するビューへのそのようなアクセスを防ぎます。
ここであなたの質問に何か欠けていますか?その場合は明確にしてください。
編集:コメントのdjango docリンクに関して:これは、特定のディレクトリからリクエストファイルを単純に提供する方法です。そのため、この例では、 のような URL は/site_media/foo.jpg、およびの下/site_media/somefolder/bar.jpgのファイルを自動的に検索します。基本的に、以下のものはすべて公開されます。それは明らかに安全ではありません。したがって、メソッドでそれを回避します。foo.jpgsomefolder/bar.jpgdocument_rootdocument_root
また、必要なのはURLリクエストを取得してハードドライブ上のファイルにマップするApacheのようなものである場合、djangoは多くの不要なオーバーヘッドを追加するだけであるため、非効率的であると見なされます. (django セッション、リクエスト処理などは必要ありません。)
あなたの場合、これはそれほど大きな問題ではないかもしれません。まず、ビューを確保しました。次に、使用パターンによって異なります。これらのファイルに対して何件のリクエストが予想されますか? 認証にdjangoのみを使用しています-それは他のオーバーヘッドを正当化しますか? そうでない場合は、これらのファイルを Apache で提供し、認証プロバイダーを使用することを検討できます。詳細については、次のmod_wsgiドキュメントを参照してください。
mod_python私は信じていますの下で利用可能な同様のメカニズムがあります。(更新:他の回答に気づきました。方法については、アンドレの回答を参照してくださいmod_python。)
編集 2: ファイルを提供するためのコードに関しては、次のスニペットを参照してください。
このsend_fileメソッドは、大きな静的ファイルを送り返すのに適した FileWrapper を使用します (ファイル全体をメモリに読み込むわけではありません)。content_type送信するファイルの種類 (pdf、jpg など) に応じてを変更する必要があります。