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

时间:2015-02-16 01:08:56

标签: django django-models

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

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

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

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

1 个答案:

答案 0 :(得分:3)

使用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()