ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
### Model和Manager的详解 大概跟着视频课程粗略了解下Model和Manager的源代码 ~~~py class Model(six.with_metaclass(ModelBase)): .... ~~~ 这里可以看到Model类的继承和ModelBase类是有关系的,再进入ModelBase类看看 ~~~py class ModelBase(type): .... if not opts.managers or cls._requires_legacy_default_manager(): if any(f.name == 'objects' for f in opts.fields): raise ValueError( "Model %s must specify a custom Manager, because it has a " "field named 'objects'." % cls.__name__ ) manager = Manager() manager.auto_created = True cls.add_to_class('objects', manager) .... ~~~ 上面这一段首先能看出来,ModelBase实际上是个元类,同时这段代码也说明了为什么model类都有一个objects的属性,而这个属性如果没有额外定义就是叫objects