从另一个应用程序以编程方式访问 Django 模型

programatically accessing Django models from another app

我有一个中等复杂的 Django 项目,其中包含各种不同的应用程序(app1app2 等),每个应用程序都有自己的模型。我正在构建一个 MetaApp 应用程序来跟踪每个应用程序的信息,在 models.py 中有一个 MetaApp class,以及 appname 和 [=16= 等字段]

MetaApp 驱动一个索引视图,该视图总结了每个项目的各个方面。我想包括每个应用程序的数据库记录数。这意味着我需要以编程方式从其他应用程序访问模型。 如果我知道 appnamemodelname,我该如何以编程方式访问这些模型?

projects = MetaApp.objects.all()
projects[0].appname[0].modelname.ojects.all()

此代码导致属性错误,因为我将 appnamemodelname 存储为 unicode 字符串。解决方法是什么?

使用django.db.models.loading.get_model()函数:

from django.db.models.loading import get_model

model = get_model(app_name, model_name)
object_list = model.objects.all()