在Django模型类中使用self
在Django的models.py文件中添加模型类时,为什么我们不在定义字段变量时使用self呢?如果不使用self,字段变量不是应该变成类变量吗?这样可能会导致一些问题。
1 个回答
12
Django使用 metaclass(元类)来根据你提供的类定义创建实际的类。简单来说,当你实例化你的模型类时,元类会检查你的模型字段定义,然后返回一个具有相应属性的类。
直接回答你的问题,使用类变量而不是实例变量(object.self
)可以让元类在不需要先实例化类的情况下,检查类的属性。
想了解更多信息,可以查看源代码和以下文档: