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 应用程序,例如 admin
、auth
、contenttypes
、sessions
、[=21] =] 和 staticfiles
.
在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 应用程序,例如 admin
、auth
、contenttypes
、sessions
、[=21] =] 和 staticfiles
.