Py学习  »  Django

Django通过模型名获取模型

Mohammad • 3 年前 • 1096 次点击  

在里面 Django 我知道只有一个型号有名字 foo ,但我不知道该模型注册的应用程序!我怎样才能只需要一个 model_name ?

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/133845
 
1096 次点击  
文章 [ 1 ]  |  最新文章 3 年前
shriakhilc
Reply   •   1 楼
shriakhilc    3 年前

作为答案 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

请注意,此iterable将包括中的基本django应用程序 INSTALLED_APPS 喜欢 admin , auth , contenttypes , sessions , messages staticfiles .