そろそろbootstrap4を使ってみたいなと思った。django-bootstrap3があるのと同様にdjango-bootstrap4があるので、それを使ってみることにした。

インストール

$ pip install django-bootstrap4

設定

# settings.py
INSTALLED_APPS = (
....
    'bootstrap4',
....
)

bootstrap4の設定変更

# settings.py
BOOTSTRAP4 = {
}

内で行う

テンプレート

{% load bootstrap4 %}
{% bootstrap_css %}
{% bootstrap_javascript %}
{% bootstrap_messages %}

django-bootstrap3と一緒

ドキュメント

django-bootstrap4 document

フォームのエラーをフィールド毎に表示

django-bootstrap4のフォームでエラーでた時の表示はフォーム上部にまとめて出るが、「この値は・・・」というような表現で、とても分かりにくいので、フィールド毎に表示されるのが良いかなと思った。

そのような場合は、django-bootstrap4-field-errors.pyを使うと良かった。このファイルをform_renderer.pyという名前でアプリのフォルダ下に置いて、HPに書いてある通りの設定

BOOTSTRAP4 = dict(
    form_renderers=dict(
        default='appname.form_renderer.FieldErrorFormRenderer',
    ),
    field_renderers=dict(
        default='appname.form_renderer.WithErrorFieldRenderer',
    ),
)

をすればよい。ちなみに47,48行目

html = self.add_field_errors(html)
html = self.wrap_field(html)

を入れ替えると、右部の表示から、下部の表示に変えられる。