[英]Selecting a related set of objects in Django
I have two models: 我有两个模型:
class ModelA(models.Model):
name = models.CharField()
class ModelB(models.Model):
a = models.ForeignKey(ModelA)
value = models.CharField()
ModelB
always belongs to a ModelA
. ModelB
始终属于ModelA
。 I have a certain query that filters my ModelB
s: 我有一个过滤我的
ModelB
的查询:
ModelB.objects.filter(value='foo')
From that QuerySet
I need to retrieve the matching ModelA
set. 从该
QuerySet
我需要检索匹配的ModelA
集。 So I tried this: 所以我尝试了这个:
>>> ModelB.objects.filter(value='foo').values('a')
[{'a': 2}, {'a': 4}, {'a': 6}]
But as you can see that only got me the object id
s. 但是正如您看到的那样,只有对象
id
才给我。 How can I fetch the objects themselves? 如何获取对象本身?
如果需要ModelAs,则必须要求提供ModelAs。
ModelA.objects.filter(modelb__value='foo')
Currently I have this little number: 目前我有这个小数字:
model_a_list = ModelB.objects.filter(value='foo').values('a')
ModelA.objects.filter(id__in=model_a_list)
Any better ways to do this would be much appreciated. 任何更好的方式做到这一点将不胜感激。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.