Как лучше использовать Django ORM?

Мне нужно получить набор запросов, в котором есть определенные 2 пользователя. Моя модель:

class ChatRoom(models.Model):
    user1 = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, related_name="room_user1")
    user2 = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, related_name="room_user2")

Мои вопросы:

def by_users(self, user1, user2):
    return self.get_queryset().filter(
        (Q(user1=user1) | Q(user2=user1)) & (Q(user1=user2) | Q(user2=user2)
    )

Сейчас запрос выглядит так, есть ли способ оптимизировать его, сделать оптимальным?

Вернуться на верх