Поиск поля с набором запросов - PullRequest
0 голосов
/ 03 февраля 2012

Привет, ребята, я пытался разобраться с этой проблемой час или два, и это меня озадачило.

Итак, в основном у меня есть 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 Ответ

3 голосов
/ 03 февраля 2012

Вы, вероятно, ищете синтаксис __in:

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

Чтобы получить все объекты C, где пациент находится в наборе запросов b, предполагая, что объекты B указывают на то, на что C.patient указывает объект.

...