为什么我不能将类Meta作为Django Model Class的属性来访问?

dre*_*war 16 python django django-models

在Python中我可以定义:

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

   class Occupation:
      name = "my_job"
Run Code Online (Sandbox Code Playgroud)

然后我可以访问它

>> p = Person()
>> p.Occupation.name
>> # prints "my_job"
Run Code Online (Sandbox Code Playgroud)

但是在Django中,如果我有一个使用Class Meta定义的模型,我就无法做到这一点

>>> m = SomeDjangoModel()
>>> m.Meta
>>> # prints AttributeError!
Run Code Online (Sandbox Code Playgroud)

为什么是这样 ?Django的内部Meta类与常规Python类有何不同?

我做了研究,并没有想出任何类似的问题.如果我错过了,请原谅.

在此先感谢您的帮助.

Don*_*Don 24

Meta属性由元类更改.

尝试:

SomeDjangoModel._meta
Run Code Online (Sandbox Code Playgroud)

  • @dreaswar下划线前缀变量意味着(按照惯例)Python中的私有变量 (4认同)