у меня есть мини-приложение блога и 'временная шкала'. там я хочу показаться все сообщения от всех друзей пользователя плюс сообщения того пользователя самого. Для этого я должен сделать некоторое 'соединение' между результатами двух запросов (запросы на той же таблице), так, чтобы конечным результатом была комбинация пользователя - обладатель учетной записи и все его друзья. Мой запрос похож на это:
blog = New.objects.filter(created_by = following,created_by = request.user)
Этим'', я хотел сделать 'соединение' - я нашел, что что-то вроде этого на документе - кроме этого метода не корректно - я получаю ошибку.
Как еще мог быть сделан это 'соединение'?
Вы можете использовать объекты Django Q
(параметры запроса) для создания сложных запросов с логическими операторами (&
, |
и ~
). Вы также можете использовать __
(двойное подчеркивание) для объединения параметров запроса.
# is this what you want?
blog = New.objects.filter( Q(created_by__followed_by = request.user)
|Q(created_by = request.user) )
Подробнее см. в http://docs.djangoproject.com/en/dev/topics/db/queries/#complex-lookups-with-q-objects.