我正试图绕过Django ORM。我一直在阅读django.db.models.base.py源代码,但仍然可以理解我们的Model对象中的Model.objects属性是如何定义的。有没有人知道django如何将对象属性添加到我们的Model对象中?
提前致谢
答案 0 :(得分:5)
Django ORM大量使用Python元类。来自Wikipedia:
在面向对象的编程中,元类是一个类,其实例是类。正如普通类定义某些对象的行为一样,元类定义了某些类及其实例的行为。
这是一篇博客文章,介绍了如何在Django ORM中使用元类:How the Heck do Django Models Work