Django模型对象属性在哪里和如何定义?
我正在努力理解Django的ORM(对象关系映射)。我看了django.db.models.base.py的源代码,但还是不明白我们模型对象中的Model.objects属性是怎么定义的。有没有人知道Django是怎么把这个objects属性加到我们的模型对象里的?
提前谢谢大家!
1 个回答
5
Django的ORM(对象关系映射)大量使用了Python的元类。元类可以理解为一种特殊的类,它的实例也是类。就像普通的类定义了某些对象的行为,元类则定义了某些类及其实例的行为。
在面向对象编程中,元类是一个类,它的实例是类。普通类定义了特定对象的行为,而元类则定义了特定类及其实例的行为。
这里有一篇博客文章,讲述了元类在Django ORM中的使用:Django模型到底是怎么工作的