【Django】BooleanFieldとは:使用方法とTrue、Falseの初期値設定

時計 2022.03.23 / 時計

【Django】BooleanFieldとは:使用方法とTrue、Falseの初期値設定

本記事では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以外のフィールドの型については以下記事をご参照ください。

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

それぞれの詳しい利用方法は以下記事をご参照ください。

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アプリケーションで利用してみてください。