Jin*_*ony 0 django django-models
我指的是这个链接:Django:从字符串中获取模型? . 而且,我发现有一种方法可以通过使用 apps.get_model 来做到这一点。但是,在我的场景中,模型可以来自其他应用程序。所以,我实际上不能在这里命名 app_name。有没有办法做到这一点?
如果您不关心模型来自哪个应用程序,则可以通过以下方式进行:
from django.apps import apps
def get_model_from_any_app(model_name):
for app_config in apps.get_app_configs():
try:
model = app_config.get_model(model_name)
return model
except LookupError:
pass
model = get_model_from_any_app('SomeModelName')
Run Code Online (Sandbox Code Playgroud)
但在Django在不同的应用程序模型可以具有相同的名称,即你的项目可以有模式Post在你的blog应用程序和模型Post在你的news应用程序等。
因此,如果它们在应用程序中具有重复的名称(即您可能不应该这样做,想想为什么您想要半随机模型?)
解释代码的文档:https : //docs.djangoproject.com/en/2.0/ref/applications/#django.apps.apps.get_app_configs https://docs.djangoproject.com/en/2.0/ref/applications/ #django.apps.AppConfig.get_model
| 归档时间: |
|
| 查看次数: |
892 次 |
| 最近记录: |