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

Атрибут verbose_name_plural

Атрибут verbose_name_plural применяется к классу Meta модели для явного указания формы названия модели во множественном числе. По умолчанию Django автоматически добавляет "s" к значению атрибута verbose_name, но это правило не работает для исключений (например, "news", "people"). Атрибут позволяет задать корректное отображение модели в административной панели и других местах, где используется человекочитаемое имя модели.

Синтаксис

class Meta: verbose_name_plural = "Название_во_множественном_числе"

Пример

Рассмотрим модель, для которой стандартное образование множественного числа не подходит:

from django.db import models class News(models.Model): title = models.CharField(max_length=200) content = models.TextField() published_at = models.DateTimeField() class Meta: verbose_name = "Новость" verbose_name_plural = "Новости" # Явно указываем корректное множественное число

В административной панели будет отображаться "Новости" вместо автоматического "Новостьs".

Пример

Используем атрибут для модели, где множественное число образуется нестандартно:

from django.db import models class Person(models.Model): first_name = models.CharField(max_length=50) last_name = models.CharField(max_length=50) class Meta: verbose_name = "Человек" verbose_name_plural = "Люди" # Исключение из правил английского языка

Теперь в административной панели отображается "Люди", что грамматически верно.

Пример

Если не указывать verbose_name_plural, Django пытается образовать множественное число автоматически, но часто делает это неправильно:

from django.db import models class Category(models.Model): name = models.CharField(max_length=100) class Meta: verbose_name = "Категория" # verbose_name_plural не указан, # Django использует "Категорияs" (неверно)

Правильное использование атрибута:

from django.db import models class Category(models.Model): name = models.CharField(max_length=100) class Meta: verbose_name = "Категория" verbose_name_plural = "Категории" # Явно указываем

Теперь название отображается корректно: "Категории".

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

  • атрибут verbose_name,
    который задает название модели в единственном числе
  • атрибут db_table,
    который определяет имя таблицы в базе данных
  • атрибут ordering,
    который задает сортировку записей по умолчанию
  • атрибут abstract,
    который делает модель абстрактной
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить