Запрос Django - присоединяется на той же таблице

у меня есть мини-приложение блога и 'временная шкала'. там я хочу показаться все сообщения от всех друзей пользователя плюс сообщения того пользователя самого. Для этого я должен сделать некоторое 'соединение' между результатами двух запросов (запросы на той же таблице), так, чтобы конечным результатом была комбинация пользователя - обладатель учетной записи и все его друзья. Мой запрос похож на это:

blog = New.objects.filter(created_by = following,created_by = request.user)

Этим'', я хотел сделать 'соединение' - я нашел, что что-то вроде этого на документе - кроме этого метода не корректно - я получаю ошибку.

Как еще мог быть сделан это 'соединение'?

1
задан Brian Tompsett - 汤莱恩 14 March 2017 в 18:49
поделиться

1 ответ

Вы можете использовать объекты 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.

2
ответ дан 2 September 2019 в 23:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: