【Django】models.pyに使えるField(データ型)はこれだけ覚えて!

Web

こんにちは!ゆーや(@yuyamanm118712)です。

ウェブアプリケーションの開発において、データベースの設計は非常に重要な要素です。Djangoでは、データベースの構造を定義する際に、models.pyファイルで各種フィールドを使用します。これらのフィールドは、データの型や特性に応じて、テキスト、数値、日付、真偽値などを適切に保存・管理するためのものです。

この記事では、Djangoのmodels.pyで使用できる主要なフィールドについて、それぞれの用途や設定方法を詳しく解説します。これを理解することで、より効率的で信頼性の高いデータベースモデルを設計することができるでしょう。

さあ、Djangoのデータモデルを一歩進めるために、各フィールドの特性を見ていきましょう。

models.pyで使える覚えるべきField

ゆーや
ゆーや

実際にすべて実装したmodels.pyのコードは、最後に紹介するよ!

CharField

CharField は、文字列を保存するためのフィールドです。例えば、名前やタイトルなどの短いテキストデータに使用します。max_lengthパラメータで最大文字数を指定する必要があり、この制約を守るためにデータベースに適したカラムが作成されます。

char = models.CharField(
    verbose_name="テキスト",
    max_length=100
)
  • verbose_name: 管理画面などで表示されるフィールド名を指定します。
  • max_length: 保存するテキストの最大長を指定します
ゆーや
ゆーや

実際のテーブル上の論理名は変数名(ここでいう「char」)になるので注意!

TextField

TextField は、長文のテキストデータを保存するためのフィールドです。ブログの投稿内容やコメントなど、長いテキストデータに適しています。CharFieldと異なり、max_lengthの制約はありません。

text = models.TextField(
    verbose_name="大量のテキスト"
)
  • verbose_name: 管理画面などで表示されるフィールド名を指定します。

BooleanField

BooleanField は、True または False の二値データを保存するためのフィールドです。例えば、特定の条件が満たされているかどうかなどのフラグを管理するのに役立ちます。

booleanField = models.BooleanField(
    verbose_name="TRUE/FALSE"
)
  • verbose_name: 管理画面などで表示されるフィールド名を指定します。

DateField

DateField は、日付を保存するためのフィールドです。例えば、誕生日やイベントの日付などを記録するのに使用します。

dateField = models.DateField(
    verbose_name="日付"
)
  • verbose_name: 管理画面などで表示されるフィールド名を指定します。

DateTimeField

DateTimeField は、日時を保存するためのフィールドです。例えば、投稿日時や更新日時など、正確な時間を含むデータが必要な場合に使用します。

datetimeField = models.DateTimeField(
    verbose_name="日時"
)
  • verbose_name: 管理画面などで表示されるフィールド名を指定します。

IntegerField

IntegerField は、整数を保存するためのフィールドです。例えば、商品の数量や順位など、整数のデータに使用します。

integerField = models.IntegerField(
    verbose_name="整数"
)
  • verbose_name: 管理画面などで表示されるフィールド名を指定します。

BigIntegerField

BigIntegerField は、大きな整数を保存するためのフィールドです。IntegerFieldよりも大きな値を扱いたい場合に使用します。データベースの制約を考慮する必要がありますが、例えば非常に大きなID値などに適しています。

bigintegerField = models.BigIntegerField(
    verbose_name="大きな整数"
)
  • verbose_name: 管理画面などで表示されるフィールド名を指定します。

FloatField

FloatField は、浮動小数点数を保存するためのフィールドです。例えば、価格や比率などの小数点を含む数値データに使用します。

floatFiled = models.FloatField(
    verbose_name="浮動小数点数"
)
  • verbose_name: 管理画面などで表示されるフィールド名を指定します。

実際にmodels.pyに書いてみる

サンプルコード

from django.db import models

# Create your models here.
class Sample(models.Model):
    char = models.CharField(
        verbose_name="テキスト",
        max_length=100
    )

    text = models.TextField(
        verbose_name="大量のテキスト"
    )

    booleanField = models.BooleanField(
        verbose_name="TRUE/FALSE"
    )

    dateField = models.DateField(
        verbose_name="日付"
    )

    datetimeField = models.DateTimeField(
        verbose_name="日時"
    )

    integerField = models.IntegerField(
        verbose_name="整数"
    )

    bigintegerField = models.BigIntegerField(
        verbose_name="大きな整数"
    )

    floatFiled = models.FloatField(
        verbose_name="浮動小数点数"
    )

作成したModelをDjango管理画面で見てみる

ゆーや
ゆーや

入力欄を見るとそれぞれ想定通りのフィールドができていることがわかるね!

Django管理画面やそもそもテーブルの作り方(マイグレーション)がわからない方は次の記事を見てみてね!

テーブルの作り方(マイグレーション)

ゆーや
ゆーや

以下の記事で詳しく説明しています!

よかったら見てください!

Django管理画面の使い方

ゆーや
ゆーや

以下の記事で詳しく説明しています!

よかったら見てください!

まとめ

まとめとして、Djangoのmodels.pyで使用できるフィールドは、アプリケーションで扱うデータの種類に応じて適切な選択をすることが重要です。以下のフィールドは、さまざまなデータタイプに対応しており、それぞれの特性に応じた使用が求められます。
これらのフィールドを理解し、適切に使用することで、Djangoアプリケーション内のデータを効率的に管理することができます。それぞれのフィールドの特性や用途に応じて選択し、データモデルを設計しましょう。

コメント

タイトルとURLをコピーしました