从另一个应用程序以编程方式访问 Django 模型
programatically accessing Django models from another app
我有一个中等复杂的 Django 项目,其中包含各种不同的应用程序(app1
、app2
等),每个应用程序都有自己的模型。我正在构建一个 MetaApp
应用程序来跟踪每个应用程序的信息,在 models.py 中有一个 MetaApp
class,以及 appname
和 [=16= 等字段]
MetaApp
驱动一个索引视图,该视图总结了每个项目的各个方面。我想包括每个应用程序的数据库记录数。这意味着我需要以编程方式从其他应用程序访问模型。 如果我知道 appname
和 modelname
,我该如何以编程方式访问这些模型?
projects = MetaApp.objects.all()
projects[0].appname[0].modelname.ojects.all()
此代码导致属性错误,因为我将 appname
和 modelname
存储为 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()
我有一个中等复杂的 Django 项目,其中包含各种不同的应用程序(app1
、app2
等),每个应用程序都有自己的模型。我正在构建一个 MetaApp
应用程序来跟踪每个应用程序的信息,在 models.py 中有一个 MetaApp
class,以及 appname
和 [=16= 等字段]
MetaApp
驱动一个索引视图,该视图总结了每个项目的各个方面。我想包括每个应用程序的数据库记录数。这意味着我需要以编程方式从其他应用程序访问模型。 如果我知道 appname
和 modelname
,我该如何以编程方式访问这些模型?
projects = MetaApp.objects.all()
projects[0].appname[0].modelname.ojects.all()
此代码导致属性错误,因为我将 appname
和 modelname
存储为 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()