【Django】BooleanFieldとは:使用方法とTrue、Falseの初期値設定
2022.03.23 /
本記事ではDjangoにおける、BooleanFieldについて解説していきます。
models.pyのモデルクラスでフィールドを定義する際、BooleanFieldを使用することができます。BooleanFieldはTrueとFalseの2つの値しか持たない少し特殊なフィールドの型です。
本記事を通してBoolean(真偽値)とBooleanFieldについて理解を深めましょう。
Boolean(ブール型)
Booleanとは
Boolean(ブール型)とはTrueとFalseの2種類の値をとるデータ型です。Booleanは真偽値とも呼ばれ、Trueが真、Falseが偽とみなされます。
数値で表すと偽が0、真が1となります。
文字型や数値型はとりうる値に制限はありませんが、BooleanはTrue、Falseの2値しかないという特徴があります。
このTrue、Falseの値は以下の特徴があります。
- クォート記号は付けない
- 先頭は大文字にする
- 先頭以外は小文字
Booleanは2つの値(真と偽)しかとらないので、チェックボックスなどで利用されることが多いです。
BooleanField
BooleanFieldとは
BooleanFieldとはmodels.pyのモデルクラスでフィールドを定義する際に使用するフィールドの型の一つです。
BooleanFieldはTrueまたはFalseを扱うフィールド、すなわちBoolean(ブール値)を扱うフィールドを定義します。
Djangoでは主にチェックボックスで利用されることが多いです。
BooleanField以外のフィールドの型については以下記事をご参照ください。
【django】モデルのフィールドについて:フィールドの型・オプション一覧
BooleanFieldの使用方法
モデルクラスでBooleanFieldは以下構文に沿って定義します。
field_name = models.BooleanField(**options)
例えば次のようにモデルクラスで使用します。
from django.db import models
class Member(models.Model):
name = models.CharField(max_length=50)
age = models.IntegerField()
flag = models.BooleanField()
上記ではflagをBooleanFieldで定義しています。このようにフラグ系で利用されることも多いです。
初期値(デフォルト値)の設定
BooleanFieldでは基本的に初期値(デフォルト値)を設定しておきます。
初期値の設定は以下のように引数にdefault属性を指定します。
flag = models.BooleanField(default=True)
defaultを設定しなかった場合、BooleanFieldのデフォルト値はNoneです。そのためdefaultを設定しない場合はnull=Trueを引数に指定しておきましょう。
flag = models.BooleanField(null=True)
BooleanField:フォームの初期値
BooleanFieldでのフォームの初期値を設定する方法を解説していきます。
Djangoでは主に以下2つの方法でフォームを作成します。
- forms.Form
- forms.ModelForm
それぞれの詳しい利用方法は以下記事をご参照ください。
【Django】フォームの作成:forms.pyにフォームクラスを定義する(forms.Form)
【Django】forms.py:モデルを利用したフォームの作成方法(forms.ModelForm)
forms.Formでの初期値
forms.Formは一からフォームを定義しなければなりませんが、応用が利くフォーム作成方法です。
このフォームでBooleanFieldの初期値を設定するには引数にinitialを使用します。
field_name = models.BooleanField(initial=True)
上記では初期値にTrueを指定しています。このようにinitialを使用することでフォームの初期値を指定することができます。
forms.ModelFormでの初期値
forms.ModelFormはモデルクラスを利用したフォームの生成方法になります。models.pyで作成しているモデルクラスを使用するため、forms.pyへの記述が少なく簡単にフォームを作成できます。
forms.ModelFormでBooleanFieldの初期値を設定するにはmodels.py内でのモデルクラスでdefaultを指定している必要があります。
field_name = models.BooleanField(default=True)
上記では初期値にTrueを指定しています。このようにdefaultを使用することでフォームの初期値を指定することができます。
まとめ
本記事「【Django】BooleanFieldとは:使用方法とTrue、Falseの初期値設定」はいかがでしたか。
モデルのフラグ関係でBooleanFieldはその威力を発揮するフィールドです。ぜひご自身のWebアプリケーションで利用してみてください。