Поле BooleanField

Поле BooleanField в Django представляет собой булево поле, которое хранит значения True или False. В базе данных оно обычно отображается как тип BOOLEAN. Это поле часто используется для флагов, статусов или других бинарных состояний. По умолчанию виджет формы для этого поля - CheckboxInput.

Синтаксис

pythonfrom django.db import models

class MyModel(models.Model):
  field_name = models.BooleanField(**options)

Параметры

Поле принимает стандартные параметры, а также специфичные:

Пример

Давайте создадим модель для статьи, где будет поле is_published, указывающее, опубликована ли статья:

pythonfrom django.db import models

class Article(models.Model):
  title = models.CharField(max_length=100)
  content = models.TextField()
  is_published = models.BooleanField(default=False)

Пример

Создадим несколько статей и сохраним их в базу данных:

pythonfrom myapp.models import Article

# Create article with is_published=True
article1 = Article(
  title="First article",
  content="Content of first article",
  is_published=True
)
article1.save()

# Create article with is_published=False (default)
article2 = Article(
  title="Second article",
  content="Content of second article"
)
article2.save()

Пример

Отфильтруем только опубликованные статьи:

pythonfrom myapp.models import Article

published = Article.objects.filter(is_published=True)
for article in published:
  print(article.title)

Результат выполнения кода:

python"First article"

Пример

Найдем все неопубликованные статьи:

pythonfrom myapp.models import Article

drafts = Article.objects.filter(is_published=False)
for article in drafts:
  print(article.title)

Результат выполнения кода:

python"Second article"

Пример

Изменим статус публикации статьи и обновим ее в базе данных:

pythonfrom myapp.models import Article

article = Article.objects.get(title="Second article")
article.is_published = True
article.save()

res = Article.objects.filter(is_published=True).count()
print(res)

Результат выполнения кода:

python"2"

Смотрите также

  • поле CharField,
    которое используется для хранения коротких строк
  • поле TextField,
    которое предназначено для длинных текстов
  • поле IntegerField,
    которое хранит целые числа
  • поле DateField,
    которое хранит даты