2010-01-27 6 views
7

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

Ex:

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


    class Meta: 
     ordering = ["Gender"] 

Спасибо.

ответ

3

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

25

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

В этом случае упорядочения или сортировки запросов в этой модели поле «Пол»

3

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

0

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

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

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

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

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

Другой полезный вариант может быть использован в классе Meta является verbose_name ,

Смежные вопросы