222

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". Хотя наше изменение было незначительным, мы могли бы предоставить еще больше деталей, чтобы проинформировать других разработчиков о нашей модели.

Report Page