使用查询集进行字段查找
大家好,我花了一个多小时在这个问题上,真是搞不懂。
简单来说,我有三个模型,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 个回答
4
你可能在寻找 __in
这个语法:
c = C.objects.filter(todays_treatment=medication, patient__in=b)
这个语法可以用来获取所有的 C 对象,前提是这些对象的患者在 b
这个查询集中,假设 B 对象就是 C.patient
指向的对象。