在Django中将模型类添加到models.py时,为什么我们不使用self来定义我们定义的字段变量?不应该使用自变量变量使它们成为类变量,而“可能”会导致问题。
答案 0 :(得分:10)
Django使用metaclasses根据您提供的类定义创建实际的类。简而言之,在实例化模型类时,元类将运行模型字段定义并返回具有适当属性的相应类。
要直接回答您的问题,使用类变量而不是实例变量(object.self
)允许元类检查类属性,而无需先实例化它。
有关详细信息,请查看the source以及以下文档: