Здравствуйте!
Вот небольшой кусок кода для вывода сообщений между пользователями:
messages = QuerySet #тут queryset с сообщениями
context['message_list'] = messages
# мне нужно пометить просмотренными сообщения для получателя
# обычно я постоянно делаю запрос на обновление:
Message.objects.filter(recipient=self.request.user, viewed__isnull=True).update(viewed=timezone.now())
# но ведь можно заранее проверить, есть ли новые сообщения и если нужно сделать запрос (вариант 2):
not_viewed_message_ids = [msg.pk for msg in messages if msg.recipient == self.request.user and not viewed]
if not_viewed_message_ids:
Message.objects.filter(pk__in=not_viewed_message_ids).update(viewed=timezone.now())
Что скажите на счет второго варианта, правильно ли так делать или не нужно задачи БД перекладывать на python?