РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
2 of 818 menu

Поле TextField

Поле TextField применяется в модели Django для хранения текстовых данных неограниченного размера. В отличие от CharField, это поле не имеет ограничения по длине и подходит для хранения больших объёмов текста. При использовании в административной панели отображается в виде многострочного текстового поля. В базу данных транслируется в тип TEXT.

Синтаксис

from django.db import models class MyModel(models.Model): field_name = models.TextField(**options)

Пример

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

from django.db import models class Article(models.Model): title = models.CharField(max_length=200) content = models.TextField() created_at = models.DateTimeField(auto_now_add=True) def __str__(self): return self.title

Теперь создадим несколько записей и сохраним их в базе данных:

from myapp.models import Article from datetime import datetime article1 = Article( title="Introduction to Django", content="Django is a high-level Python web framework that encourages rapid development and clean, pragmatic design." ) article1.save() article2 = Article( title="Django Models", content="Models are the single, definitive source of information about your data. They contain the essential fields and behaviors of the data you’re storing." ) article2.save() articles = Article.objects.all() for article in articles: print(article.title)

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

"Introduction to Django" "Django Models"

Пример

Извлечём содержимое статьи и выведем первые 50 символов:

from myapp.models import Article article = Article.objects.get(title="Introduction to Django") content_preview = article.content[:50] + "..." print(content_preview)

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

"Django is a high-level Python web framework that ..."

Параметры

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

  • max_length - задаётся только для совместимости с формами, в БД ограничение не применяется;
  • blank - если True, поле может быть пустым в формах;
  • null - если True, в базе данных будет храниться NULL;
  • default - значение по умолчанию для поля;
  • db_collation - задаёт сортировку для текстовых данных.

Пример использования параметров:

from django.db import models class Post(models.Model): summary = models.TextField(max_length=500, blank=True) body = models.TextField(null=True, default="No content yet") notes = models.TextField(db_collation="utf8mb4_unicode_ci")

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

  • поле CharField,
    которое используется для коротких строк
  • поле JSONField,
    которое хранит структурированные данные в формате JSON
  • поле EmailField,
    которое предназначено для хранения адресов электронной почты
  • поле URLField,
    которое используется для хранения URL-адресов
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить