Как в Django сделать запрос к таблице с несколькими условиями?

У меня есть таблица с полями channel_id, message_id и status. Каждая строка в этой таблице представляет сообщение из канала. Статус может быть отправлен, доставлен или просмотрен. Когда пользователь отправляет сообщение, в эту таблицу добавляется строка со статусом SENT. Когда пользователь читает это сообщение, добавляется еще одна строка со статусом SEEN. Таким образом, для одного сообщения у меня есть несколько строк. Я хочу получить строки из этой таблицы, которые не имеют статуса SEEN, чтобы знать, какое сообщение не прочитано. Есть ли способ сделать это с помощью одного запроса к базе данных?

Edit: Я хочу сделать что-то вроде подзапроса. Итак, если у меня есть следующие данные:

[channel_id = 1, message_id = 1, status = 'DELIVERED'],
[channel_id = 1, message_id = 1, status = 'SEEN'],
[channel_id = 1, message_id = 2, status = 'DELIVERED']

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

Нижеприведенный запрос предоставит вам список статусов, добавленных для каждого сообщения. Используя его, вы можете проверить, прочитано ли сообщение или нет.

  TableName.objects.filter(channel_id=channel_id, message_id=message_id).value_list('status', flat=True);
Вернуться на верх