首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何获取Model外键字段的管理器对象?

如何获取Model外键字段的管理器对象?
EN

Stack Overflow用户
提问于 2011-04-06 00:03:39
回答 2查看 161关注 0票数 0

我正在尝试检索Django外键的Manager (或Model)。这应该很简单,但我似乎找不到合适的属性。

代码语言:javascript
运行
复制
class ModelA(models.Model):
    pass

class ModelB(models.Model):
    thing = models.ForeignKey(ModelA)

假设我有变量modelBInstance和字符串"thing“,我想要获取ModelA。我已经使用getattr跟踪(我认为是详尽的)每个对象的显而易见的外观属性。要么我错过了什么要么这是不可能的。我不认为这是不可能的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-04-06 00:12:38

几件事: 1.模型实例没有管理器,模型实例有管理器。2.要获得外键的管理器,你必须首先引用它的类,然后再引用它的管理器。

输入(getattr(modelBInstance,'thing')).objects可以让你访问管理器。

票数 1
EN

Stack Overflow用户

发布于 2011-04-06 00:29:55

关于字段的所有相关信息都存储在模型的_meta类中。在那里,您将看到一个get_field_by_name方法,它将返回实际的外键字段。在那里,您可以通过rel.to获取它所指向的模型。

代码语言:javascript
运行
复制
thing = ModelB._meta.get_field_by_name('thing')[0]
print thing.rel.to
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5554860

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档