Поле CharField
Поле CharField предназначено для хранения символьных строк в базе данных. В первый параметр мы передаем max_length - максимальную длину строки (обязательный аргумент). Во второй параметр мы можем передать blank - разрешает пустые значения в формах. Также поддерживаются параметры null (разрешает NULL в БД), default (значение по умолчанию) и choices (ограничение допустимых значений).
Синтаксис
class MyModel(models.Model):
name = models.CharField(max_length=100)
Пример
Давайте создадим модель с полем CharField, которое хранит имя пользователя:
from django.db import models
class User(models.Model):
name = models.CharField(max_length=50)
def __str__(self):
return self.name
Теперь создадим нового пользователя и сохраним его:
user = User(name="John Doe")
user.save()
Пример
Используем поле CharField с ограничением выбора (choices):
class Person(models.Model):
STATUS_CHOICES = [
('active', 'Активный'),
('inactive', 'Неактивный'),
]
status = models.CharField(
max_length=10,
choices=STATUS_CHOICES,
default='active'
)
Создадим экземпляр модели со статусом 'inactive':
person = Person(status='inactive')
person.save()
print(person.status)
Результат выполнения кода:
"inactive"
Пример
Установим поле CharField с параметром null=True и blank=True:
class Product(models.Model):
description = models.CharField(
max_length=200,
null=True,
blank=True
)
Создадим продукт без описания:
product = Product()
product.save()
print(product.description)
Результат выполнения кода:
None
Смотрите также
-
поле
TextField,
которое предназначено для хранения длинных текстов без ограничения длины -
поле
EmailField,
которое является подклассом CharField с проверкой на корректный email -
поле
SlugField,
которое наследуется от CharField и предназначено для хранения slug-строк -
поле
URLField,
которое является подклассом CharField с проверкой на корректный URL