Типы полей моделей

Последнее обновление: 21.08.2022

Для определения моделей мы можем использовать следующие типы полей:

  • BinaryField(): хранит бинарные данные

  • BooleanField(): хранит значение True или False (0 или 1)

  • NullBooleanField(): хранит значение True или False или Null

  • DateField(): хранит дату

  • TimeField(): хранит время

  • DateTimeField(): хранит дату и время

  • DurationField(): хранит период времени

  • AutoField(): хранит целочисленное значение, которое автоматически инкрементируется, обычно применяется для первичных ключей

  • BigAutoField(): хранит 64-битное целочисленное значение, но в отличие от AutoField гарантирует, что число входит в диапазон от 1 до 9223372036854775807.

  • SmallAutoField(): хранит 16-битное целочисленное значение в диапазоне от 1 до 32767

  • BigIntegerField(): представляет число - значение типа Number, которое укладывается в диапазон от -9223372036854775808 до 9223372036854775807. В зависимости от выбранной СУБД диапазон может немного отличаться

  • DecimalField(decimal_places=X, max_digits=Y): представляет значение типа Number, которое имеет максимум X разрядов и Y знаков после запятой

  • FloatField(): хранит, значение типа Number, которое представляет число с плавающей точкой

  • IntegerField(): хранит значение типа Number, которое представляет целочисленное значение

  • PositiveIntegerField(): хранит значение типа Number, которое представляет положительное целочисленное значение (от 0 до 2147483647)

  • PositiveBigIntegerField(): хранит значение типа Number, которое представляет положительное 64-битное целочисленное значение (от 0 до 9223372036854775807)

  • PositiveSmallIntegerField(): хранит значение типа Number, которое представляет небольшое положительное целочисленное значение (от 0 до 32767)

  • SmallIntegerField(): хранит значение типа Number, которое представляет небольшое целочисленное значение (от -32768 до 32767)

  • CharField(max_length=N): хранит строку длиной не более N символов

  • TextField(): хранит строку неопределенной длины

  • EmailField(): хранит строку, которая представляет email-адрес. Значение автоматически валидируется встроенным валидатором EmailValidator

  • FileField(): хранит строку, которая представляет имя файла

  • FilePathField(): хранит строку, которая представляет путь к файлу длиной в 100 символов

  • ImageField(): хранит строку, которая представляет данные об изображении

  • GenericIPAddressField(): хранит строку, которая представляет IP-адрес в формате IP4v или IP6v

  • SlugField(): хранит строку, которая может содержать только буквы в нижнем регистре, цифры, дефис и знак подчеркивания

  • URLField(): хранит строку, которая представляет валидный URL-адрес

  • UUIDField(): хранит строку, которая представляет UUID-идетификатор

  • JSONField(): хранит данные в формате JSON, которая представляет UUID-идетификатор

Таблица сопоставления полей с типами в различных СУБД:

Тип

SQLite

MySQL

PostgreSQL

Oracle

BinaryField()

BLOB NOT NULL

longblob NOT NULL

bytea NOT NULL

BLOB NULL

BooleanField()

bool NOT NULL

bool NOT NULL

boolean NOT NULL

NUMBER(1) NOT NULL CHECK("Значение" IN(0,1))

NullBooleanField()

bool NULL

bool NULL

boolean NULL

NUMBER(1) NOT NULL CHECK(("Значение" IN(0,1)) OR ("Значение" IS NULL))

DateField()

date NULL

date NULL

date NULL

DATE NOT NULL

TimeField()

time NULL

time NULL

time NULL

TIMESTAMP NOT NULL

DateTimeField()

datetime NULL

datetime NULL

timestamp NULL

TIMESTAMP NOT NULL

DurationField()

bigint NOT NULL

bigint NOT NULL

interval NOT NULL

INTERVAL DAY(9) TO SECOND(6) NOT NULL

AutoField()

integer NOT NULL AUTOINCREMENT

integer AUTO_INCREMENT NOT NULL

serial NOT NULL

NUMBER(11) NOT NULL

BigIntegerField

bigint NOT NULL

bigint NOT NULL

bigint NOT NULL

NUMBER(19) NOT NULL

DecimalField(decimal_places=X, max_digits=Y)

decimal NOT NULL

numeric(X, Y) NOT NULL

numeric(X, Y) NOT NULL

NUMBER(10, 3) NOT NULL

FloatField

real NOT NULL

double precision NOT NULL

double precision NOT NULL

DOUBLE PRECISION NOT NULL

IntegerField

integer NOT NULL

integer NOT NULL

integer NOT NULL

NUMBER(11) NOT NULL

PositiveIntegerField

integer unsigned NOT NULL

integer UNSIGNED NOT NULL

integer NOT NULL CHECK ("Значение" > 0)

NUMBER NOT NULL CHECK ("Значение" > 0)

PositiveSmallIntegerField

smallint unsigned NOT NULL

smallint UNSIGNED NOT NULL

smallint NOT NULL CHECK ("Значение" > 0)

NUMBER(11) NOT NULL CHECK ("Значение" > 0)

SmallIntegerField

smallint NOT NULL

smallint NOT NULL

smallint NOT NULL

NUMBER(11) NOT NULL

CharField(max_length=N)

varchar(N) NOT NULL

varchar(N) NOT NULL

varchar(N) NOT NULL

NVARCHAR2(N) NULL

TextField()

text NOT NULL

longtext NOT NULL

text NOT NULL

NCLOB NULL

EmailField()

varchar(254) NOT NULL

varchar(254) NOT NULL

varchar(254) NOT NULL

NVARCHAR2(254) NULL

FileField()

varchar(100) NOT NULL

varchar(100) NOT NULL

varchar(100) NOT NULL

NVARCHAR2(100) NULL

FilePathField()

varchar(100) NOT NULL

varchar(100) NOT NULL

varchar(100) NOT NULL

NVARCHAR2(100) NULL

ImageField()

varchar(100) NOT NULL

varchar(100) NOT NULL

varchar(100) NOT NULL

NVARCHAR2(100) NULL

GenericIPAddressField()

char(39) NOT NULL

char(39) NOT NULL

inet NOT NULL

VARCHAR2(39) NULL

SlugField()

varchar(50) NOT NULL

varchar(50) NOT NULL

varchar(50) NOT NULL

NVARCHAR2(50) NULL

URLField()

varchar(200) NOT NULL

varchar(200) NOT NULL

varchar(200) NOT NULL

NVARCHAR2(200) NULL

UUIDField()

char(32) NOT NULL

char(32) NOT NULL

uuid NOT NULL

VARCHAR2(32) NULL

JSONField()

jsonb

Помощь сайту
Юмани:
410011174743222
Перевод на карту
Номер карты:
4048415020898850