为什么';t django.db.models.get_models()返回任何抽象模型吗?

为什么';t django.db.models.get_models()返回任何抽象模型吗?,django,django-models,Django,Django Models,django.db.models.get_apps()返回包含模型的所有已安装模块的列表,无论它们是具体的还是抽象的: [<module 'apputils.models' from '/Users/Aaron/Sites/app/apputils/models.py'>, <module 'users.models' from '/Users/Aaron/Sites/app/users/models.py'>, <module 'profiles.models

django.db.models.get_apps()
返回包含模型的所有已安装模块的列表,无论它们是具体的还是抽象的:

[<module 'apputils.models' from '/Users/Aaron/Sites/app/apputils/models.py'>,
 <module 'users.models' from '/Users/Aaron/Sites/app/users/models.py'>,
 <module 'profiles.models' from '/Users/Aaron/Sites/app/profiles/models.py'>]

这是虫子吗?如果它不是一个bug,有没有什么方法可以包含我的抽象模型?

我认为它不是bug。对于django内部用例来说,显式列出抽象模型不是很有用

一个选择是说服django核心开发人员添加此功能(由于使用案例的原因,您实际上没有太多机会……)

第二个选项是像这样自己遍历模型(它从app
myapp
获取模型):


那么可能是一个bug,
get_apps()
返回不包含任何具体模型的应用程序。至少,这两种方法(以及
get\u app()
get\u model()
的文档都需要更新。同时,我还没有–没有回应,看看他们说了些什么应该很有趣。事实上,已经关闭了。“所有这些都是私有API;它们不是为一般用途而设计的,我必须承认它们设计得不是特别好。”很公平,我只需要停止依赖这些API调用。
[<class 'users.models.User'>,
 <class 'profiles.models.Profile'>,
 <class 'profiles.models.EditorProfile'>,
 <class 'profiles.models.AuthorProfile'>]
import inspect
from django.db.models import Model, get_app

is_modelclass = lambda c: inspect.isclass(c) and issubclass(c, Model)
inspect.getmembers(get_app('myapp'), is_modelclass)