Использование meta класса в django

может кто-нибудь объяснить, почему meta class используется в следующем примере.

Ex:

Class Employee (models.Model):
    name = models.ForeignKey(name)
    Gender = models.IntegerField()


    class Meta:
        ordering = ["Gender"]

спасибо.

4 ответов


потому что автор / программист хочет сортировать результаты по значению поля Gender.


модели Django используют Meta class, чтобы содержать дополнительную информацию о модели, которая не обязательно будет уместна для содержания в самом классе модели. Обратите внимание, что это не то же самое, что и у Python metaclass; это совершенно другая тема.

в этом случае он упорядочивает или сортирует запросы к этой модели по полю "Gender"


в этом случае он определяет поле по умолчанию для заказ, если вы не предоставите ORDER_BY в запросе.


это объясняется в документации Django для моделей

https://docs.djangoproject.com/en/dev/topics/db/models/

дайте метаданные модели, используя внутренний класс Meta, например:

Class Employee (models.Model):
    ....

    class Meta:
        ordering = ["attribute-X"]

еще один полезный параметр может использоваться в классе Meta-verbose_name.