使用查询集进行字段查找

时间:2012-02-03 06:30:11

标签: python django django-models django-admin django-views

大家好,我一直试图找出这个问题一两个小时,这让我很难过。

所以基本上我有3个模型,A,B,C,都使用外键链接在一起。

b = B.objects.filter(resident=request.user)
c = C.objects.filter(todays_treatment=medication,patient=b)

c除了查询b中返回的第一个对象的结果外,不会给我任何值。我理解这是因为b作为查询集返回,但我不明白我应该如何使用它呢?如何让c成为查询b中所有对象的结果?你们通常如何“跟随”外键关系?我已经尝试了select_related()功能,但它不会做我想做的事情。请帮忙!!

1 个答案:

答案 0 :(得分:3)

您可能正在寻找__in语法:

c = C.objects.filter(todays_treatment=medication, patient__in=b)

要获取患者在b查询集中的所有C对象,假设B对象是C.patient指向的对象。