演習 - django-crispy-forms を実装する
作成したフォームを表示すると、フォーマットがページの他の部分と同じではないことに気づく場合があります。 ブートストラップを使用していますが、フォームは現在使用されていません。 幸い、フォームでブートストラップを使用できるようにするライブラリが用意されています。
django-crispy-forms ライブラリ
django-crispy-forms ライブラリにより、Django によるフォームの生成方法をさらに強化します。 このライブラリを使用して、フォームでブートストラップを使用する方法について説明します。
ライブラリをインストールする
他の Python ライブラリと同様に、pip を使用して django-crispy-forms をインストールします。
Visual Studio Code で requirements.txt を開きます。
ファイルの末尾に、次のような改行を追加します。
django-crispy-forms
[ターミナル]>[新しいターミナル]を選択して、新しい[ターミナル] ウィンドウを開きます。
次のコマンドを実行して、すべてのパッケージをインストールします。
pip install -r requirements.txt
Django にアプリを登録し、テンプレートを構成する
Django で使用されるものはすべて、アプリまたはミドルウェアとして登録されている必要があります。 Django はアプリであるため、INSTALLED_APPS
リストにリストされます。
Visual Studio Code で、 project/settings.py を開きます。
# TODO: Register crispy_forms
という行の下に、次のコードを追加して django-crispy-forms を登録します。# TODO: Register crispy_forms 'crispy_forms',
# TODO: Set template_pack
という行の下に、次のコードを追加して django-crispy-forms を構成してブートストラップ 4 を使用します。# TODO: Set template_pack CRISPY_TEMPLATE_PACK = 'bootstrap4'
django-crispy-forms を使用するようにテンプレートを更新する
django-crispy-forms で行われるすばらしい作業の大部分は、フィルターを使用することによって行われます。 フィルターを使用すると、テンプレート内の変数を取得し、別のハンドラーまたはプロセスに渡すことができます。 この例では、crispy
フィルターによってフォームが、指定されたテンプレートであるブートストラップ 4 に変換されます。
Visual Studio Code で dog_shelters/templates/dog_form.html を開きます。
{# TODO: Load crispy_forms_tags #}
という行の下に、次のコードを追加して、フィルターまたはタグを読み込みます。{# TODO: Load crispy_forms_tags #} {% load crispy_forms_tags %}
{{ form.as_p }}
という行を次のコードに置き換えて、crispy
フィルターを使用します。{{ form | crispy }}
サイトをテストする
すべてがインストールおよび更新されたので、サイトをテストしてみましょう。
[ファイル]>[すべて保存] を選択して、すべてのファイルを保存します。
ブラウザーで
http://localhost:8000/dog/register
に移動します。このページでは、フォームにブートストラップが使用されていることがわかります。
これで、フォームにブートストラップを使用するようにアプリケーションが更新されました。