在Django Model类中使用self

时间:2011-06-29 16:45:08

标签: python django django-models self

在Django中将模型类添加到models.py时,为什么我们不使用self来定义我们定义的字段变量?不应该使用自变量变量使它们成为类变量,而“可能”会导致问题。

1 个答案:

答案 0 :(得分:10)

Django使用metaclasses根据您提供的类定义创建实际的类。简而言之,在实例化模型类时,元类将运行模型字段定义并返回具有适当属性的相应类。

要直接回答您的问题,使用类变量而不是实例变量(object.self)允许元类检查类属性,而无需先实例化它。

有关详细信息,请查看the source以及以下文档: