😽

[Django] モデルに使用できるフィールド一覧

2021/05/02に公開

モデルに使用できるフィールド

djangoが提供するモデルは、DBと強く紐づいています。RailsでいうところのActiveRecordパターンです。
そんなDjangoのモデルを書く時にはどんなフィールドが使えて、そのフィールドはどのように活用すればいいのかを簡単にまとめました。詳細は下記リンク先をご覧ください。

フィールド一覧

フィールド名 概要
AutoField 自動的にインクリメントされるIntegerField
モデルに主キーに関する指定がない場合、これが使われるらしい。
BigAutoField 1 から 9223372036854775807まで表現できるAutoField
BigIntegerField -9223372036854775808から9223372036854775807を表現できる64bit整数。
BinaryField バイナリデータを扱うためのフィールド
BooleanField True,Falseをとるフィールド
CharField 文字列を扱うためのフィールド
DateField 日付を扱う(datetime.date型)
DateTimeField 時間を扱う(datetime.datetime型)
DecimalField 実数を扱う(Decimal型)
DurationField 期間を扱うためのフィールド
timedeltaで表現される
EmailField EmailValidatorが付加されたCharField
FileField ファイルを扱うためのフィールド
使えるオプションが結構多そう
FilePathField ファイルパスを表現するためのCharField
FloatField 実数を扱う(float型)
ImageField 有効な画像かどうかを検証できるFileField
IntegerField -2147483648 から 2147483647 の整数を格納できる。一般的な32bitのint型
GenericIPAddressField IPアドレスを扱うためのフィールド、IPv4, IPv6の両方に対応できるっぽい
JSONField JSONを扱うためのフィールド
Django3.1から
NullBooleanField null=TrueなBooleanFiled
Django3.1から非推奨
PositiveBigIntegerField 0 から 9223372036854775807の整数を表現できる。自然数
Django3.1から
PositiveIntegerField 0 から 2147483647の整数を表現できる。自然数
PositiveSmallIntegerField 0 から 32767の整数を表現できる。自然数
SlugField URLの一部として使用されたりする、短いラベルを格納するためのフィールド
SmallAutoField 1 から 32767 まで表現できるAutoField
Django3.0から
SmallIntegerField -32768 から 32767を表現できるIntegerField。
TextField 自動生成されたFormではtextareaで扱われるらしい・
max_lengthを指定してもmodel,データベースのレベルで強制されないので、強制したい場合はCharFieldを使えばいい。
TimeField 時間を扱うフィールド
datetime.time型, DateFieldと同じオプションを使える
URLField URLValidatorが付加されたCharField
UUIDField ユニークな識別子を格納するためのフィールド

参考

https://docs.djangoproject.com/en/3.1/ref/models/fields/#django.db.models.Field

https://docs.djangoproject.com/en/3.1/topics/db/models/

Discussion