HTMLでの動画ファイルを識別するために私が使ったものを紹介します
技術検証中にまとめたため、コメントアウトは気にしないでください
カスタムフィルター
カスタムフィルターとはテンプレート内でDBから受け取ったデータを変換・整形するための仕組みです。今回はmp4ファイルとmovファイルを識別するために使用しました。
カスタムフィルターの導入方法
カスタムフィルターを導入するためにはまず下の図のようにアプリケーションファイル内に[templatetags]フォルダーを作成し、その中に__init__.pyとcustom_filters.pyという2つのPythonファイルを作成します。
ここでの__init__.pyはフォルダー内のPythonファイルを認識させるためのものです。
カスタムフィルターの設定
custom_filters.pyの中身を書いていきます。まずdjangoモジュールからtemplateをインポートします。templateの中にあるLibraryにはDjangoのテンプレートシステムで使用されるカスタムテンプレートタグやフィルタを作成するためのクラスがあります。
ここから関数を書いていきます。まず @register.filter でライブラリからフィルターを取り出します。そして関数を定義し、返り値は今回だとmp4ファイルかどうかを識別したいので、id.lower().endswitch('.mp4')とします。ここではlower()により文字列を小文字にして処理しやすくし、endswitch()で条件に当てはまるかどうかを判別しています。
HTMLファイルに適用させる
htmlファイルに適用していきます。定義した関数を使用するには、Djangoですと
{% code %} (ここではcodeにif文を追加する)とする必要があり、
{% if|is_mp4 %} と書きます。下の図はファイル識別のコードです。
感想
カスタムフィルターを使用することで、簡単にファイル識別を実装することができました。初めての投稿でしたが、ここまで読んでいただきありがとうございます!