Django 通过模型名称获取模型

Django get models by model name

Django中,我知道只有一个模型名称为foo,但我不知道该模型注册的应用程序!如何获得只有 model_name 的模型?

Django: Get model from string? 的答案所示,您需要 app_name 字符串或 AppConfig 对象才能从 model_name.

获取模型

但是,您可以使用 apps.get_app_configs() 遍历 AppConfig 个实例,所以这样的事情是可能的:

from django.apps import apps

for app_conf in apps.get_app_configs():
    try:
        foo_model = app_conf.get_model('foo')
        break # stop as soon as it is found
    except LookupError:
        # no such model in this application
        pass

请注意,此可迭代对象将包括 INSTALLED_APPS 中的基础 Django 应用程序,例如 adminauthcontenttypessessions、[=21] =] 和 staticfiles.