2012-02-03 4 views
0

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

Итак, у меня есть 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(), но она не будет делать то, что я хочу. Пожалуйста помоги!!

+0

эй, да, я поеду на IRC – asaji

ответ

3

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

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

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

+0

спасибо, что ответит так быстро! можете ли вы сказать мне, что именно делает __in? Документы немного расплывчаты. – asaji

+0

btw это работает! Большое спасибо – asaji

+0

Он ищет результаты, в которых атрибут содержится в представленном ему списке. –

Смежные вопросы