Django 我试图使用apps.get_model函数。而且,我想在不指定应用程序名称的情况下使用它,是否有任何方法可以做到这一点。

Django 我试图使用apps.get_model函数。而且,我想在不指定应用程序名称的情况下使用它,是否有任何方法可以做到这一点。,django,django-models,Django,Django Models,我指的是这个链接:。我发现有一种方法可以通过使用apps.get_model实现这一点。但是,在我的场景中,该模型可以来自其他应用程序。因此,我无法在这里实际命名应用程序的名称。有什么方法可以做到这一点吗?如果您不在乎该型号来自哪个应用程序,您可以通过以下方法实现: from django.apps import apps def get_model_from_any_app(model_name): for app_config in apps.get_app_configs():

我指的是这个链接:。我发现有一种方法可以通过使用apps.get_model实现这一点。但是,在我的场景中,该模型可以来自其他应用程序。因此,我无法在这里实际命名应用程序的名称。有什么方法可以做到这一点吗?

如果您不在乎该型号来自哪个应用程序,您可以通过以下方法实现:

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')
但在Django中,不同应用程序中的模型可以具有相同的名称,即,您的项目可以在您的
博客
应用程序中具有model
Post
,在
新闻
应用程序中具有model
Post

因此,如果应用程序之间的名称重复(即,你可能不应该这样做,试想一下,你到底为什么想要一个半随机的模型?)

解释代码的文档:

如果您不在乎该型号来自哪个应用程序,您可以通过以下方式完成:

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')
但在Django中,不同应用程序中的模型可以具有相同的名称,即,您的项目可以在您的
博客
应用程序中具有model
Post
,在
新闻
应用程序中具有model
Post

因此,如果应用程序之间的名称重复(即,你可能不应该这样做,试想一下,你到底为什么想要一个半随机的模型?)

解释代码的文档:

这还不清楚。模型只能来自一个应用程序。为什么你不能指定应用程序?我不能指定应用程序名bcoz,模型名是动态的,从url获取。它可以来自任何应用程序。欢迎访问stackoverflow.com。请花些时间阅读,特别是命名和。也请阅读好的问题。最后,请学习如何创建一个不清楚的。模型只能来自一个应用程序。为什么你不能指定应用程序?我不能指定应用程序名bcoz,模型名是动态的,从url获取。它可以来自任何应用程序。欢迎访问stackoverflow.com。请花些时间阅读,特别是命名和。也请阅读好的问题。最后,请学习如何创建感谢。你的回答很准确,让我有了更好的想法。而且代码是有效的。我可能会尝试改变这一点。谢谢。你的回答很准确,让我有了更好的想法。而且代码是有效的。我可能会尝试改变这一点。