在django中使用元类

时间:2010-01-27 11:19:54

标签: python django django-models

有人可以解释为什么在以下示例中使用元类。

例如:

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


    class Meta:
        ordering = ["Gender"]

感谢。

4 个答案:

答案 0 :(得分:25)

Django模型使用Meta类来包含有关模型的额外信息,这些信息不一定适合包含在模型类本身中。请注意,与Python的metaclass相同;这是一个完全不同的话题。

在这种情况下,它通过字段“Gender”

对此模型进行排序或排序

答案 1 :(得分:3)

因为作者/程序员想要按性别字段的值对结果进行排序。

答案 2 :(得分:3)

在这种情况下,如果您未在查询中提供ORDER_BY,则会定义排序的默认字段。

答案 3 :(得分:0)

Django Documentation for Models

中对此进行了解释
https://docs.djangoproject.com/en/dev/topics/db/models/

使用内部类Meta提供模型元数据,例如:

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

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

另一个有用的选项可以在Meta类中使用verbose_name。