222
222Метаданные модели
Мы снабдили наши модели большим количеством полей и данных, но как насчет метаданных? Давайте сначала дадим им определение.
Метаданные - это необязательная сущность в модели, которая представляет собой все, что не является полем. Некоторые полезные метаданные могут включать в себя способы упорядочивания экземпляров, создание человекочитаемых имен, предоставление имени таблицы базы данных и многое другое.
Чтобы добавить метаданные в модель, нам понадобится вложить еще один класс под названием Meta в определение класса модели. Давайте в качестве примера используем метаданные для упорядочивания экземпляров:
class Flower(models.Model):
name = models.CharField(max_length=10)
# Все остальные атрибуты
class Meta:
order = ["name"].
В данном случае мы создали атрибут ordering, который принимает список строк (["name"]), определяющих порядок. Позже, когда нам понадобится найти экземпляры Flower, база данных вернет список, упорядоченный по полю name. Мы даже можем изменить порядок, добавив символ "-" перед строкой, например ["-name"].
Другие метаданные работают аналогичным образом. Давайте попробуем добавить подробное человекочитаемое имя:
class TropicalFlower(models.Model):
# Поля и методы
class Meta:
verbose_name = "tropical flower".
Без установки этих метаданных имя нашей модели по умолчанию было бы tropical_flower, здесь же мы назначили вербальное имя "tropical flower". Хотя наше изменение было незначительным, мы могли бы предоставить еще больше деталей, чтобы проинформировать других разработчиков о нашей модели.