【问题标题】:programatically accessing Django models from another app从另一个应用程序以编程方式访问 Django 模型
【发布时间】:2015-02-16 01:08:56
【问题描述】:

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

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

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

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

【问题讨论】:

  • 你使用的是哪个版本的 django?
  • 请注意,此功能已内置在 Django 中,位于 contenttypes
  • @Daniel Roseman,这似乎正是我所需要的。谢谢!

标签: django django-models


【解决方案1】:

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

【讨论】:

  • 正是我需要的!谢谢
猜你喜欢
  • 1970-01-01
  • 2013-05-16
  • 2016-09-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-22
  • 1970-01-01
相关资源
最近更新 更多