在Django中使用元类

7 投票
4 回答
9353 浏览
提问于 2025-04-15 18:32

有人能解释一下为什么在下面这个例子中使用了元类吗?

例子:

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


    class Meta:
        ordering = ["Gender"]

谢谢。

4 个回答

3

在这种情况下,如果你在查询中没有提供 ORDER_BY,那么它会定义一个默认的排序字段。

26

Django的模型使用一个叫做Meta的类来存放一些额外的信息,这些信息不一定适合放在模型类里面。需要注意的是,这个Meta类和Python的metaclass是完全不同的概念,后者是另一个话题。

在这个例子中,Meta类用来按照“性别”这个字段对查询结果进行排序。

3

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

撰写回答