我正在尝试检索Django外键的Manager (或Model)。这应该很简单,但我似乎找不到合适的属性。
class ModelA(models.Model):
pass
class ModelB(models.Model):
thing = models.ForeignKey(ModelA)
假设我有变量modelBInstance和字符串"thing“,我想要获取ModelA。我已经使用getattr
跟踪(我认为是详尽的)每个对象的显而易见的外观属性。要么我错过了什么要么这是不可能的。我不认为这是不可能的。
发布于 2011-04-06 00:12:38
几件事: 1.模型实例没有管理器,模型实例有管理器。2.要获得外键的管理器,你必须首先引用它的类,然后再引用它的管理器。
输入(getattr(modelBInstance,'thing')).objects可以让你访问管理器。
发布于 2011-04-06 00:29:55
关于字段的所有相关信息都存储在模型的_meta
类中。在那里,您将看到一个get_field_by_name
方法,它将返回实际的外键字段。在那里,您可以通过rel.to
获取它所指向的模型。
thing = ModelB._meta.get_field_by_name('thing')[0]
print thing.rel.to
https://stackoverflow.com/questions/5554860
复制相似问题