【发布时间】:2010-12-18 20:58:17
【问题描述】:
如果 django 模型是抽象的,如下所示,有没有办法检查类以确定它是抽象的?
class MyModel(models.Model):
class Meta:
abstract = True
我希望我可以检查 MyModel.Meta.abstract,但根据 Django 文档:
Django 确实对抽象基类的 Meta 类做了一项调整:在安装 Meta 属性之前,它设置 abstract=False。这意味着抽象基类的子类本身不会自动成为抽象类。
有什么想法吗?谢谢!
【问题讨论】:
-
看源码有什么问题?它始终可用。
-
文档的摘要与派生类的元相关,而不是基类。
-
@S.Lott - 事实上,我是 RTFM,但未能通过 RTFS。公平地说,许多关于 S.O. 的问题。通过阅读源代码可能可以自我回答。 @Dmitry - 你的评论让我有点困惑。从 django/db/basy.py 中,似乎 Meta 类中的所有属性都被转移到了一个新的类,称为 _meta。正是这个类保存了模型的 Meta 类中的原始抽象值集。无论如何,@sheats 回答了我的问题(再次感谢)。
标签: django django-models