为什么我不能访问类Meta作为Django模型类的属性?

2024-05-20 15:47:15 发布

您现在位置:Python中文网/ 问答频道 /正文

在Python中,我可以定义:

class Person(object):
   name = "Easwar"
   age = 35
   sex = "male"

   class Occupation:
      name = "my_job"

我就可以进去了

>> p = Person()
>> p.Occupation.name
>> # prints "my_job"

但是在Django中,如果我有一个内部定义了类Meta的模型,我就不能这样做

>>> m = SomeDjangoModel()
>>> m.Meta
>>> # prints AttributeError!

这是为什么? Django的内部元类与普通Python类有何不同?

我做过研究,但没有提出类似的问题。 如果我错过了,请原谅。

提前谢谢你的帮助。


Tags: djangonameage定义objectmyjobprints
2条回答

元属性由元类更改。

尝试:

SomeDjangoModel._meta

类上定义的Meta属性是一种定制的模式,用于关联和包含在创建类型时将由类的元类内省的其他数据。

您可以查看^{}元类,并了解它如何使用Meta属性来配置正在构造的结果模型类。

相关问题 更多 >