Группировка по фильтрации с помощью Django ORM

Мне нужно проверить, есть ли комната в чате. ex) пользователь_1 и пользователь_2 имеют комнату нет комнаты

Я загружаю свой код и картинку с данными.

Я думаю, что он может работать с группировкой по, верно?

enter image description here

Как мне быть? Помогите мне. Спасибо!

views.py

if ChatRoom.objects.filter(member__in=[request.user, target_user]).count() < 2:
        room = ChatRoom.objects.create()
        room.member.add(request.user)
        room.member.add(target_user)

models.py

class ChatRoom(models.Model):
    id = ShortUUIDField(primary_key=True)
    member = models.ManyToManyField(
        settings.AUTH_USER_MODEL,
        through='ChatRoomMember'
    )

    class Meta:
        managed = True
        db_table = 'chat_room'


class ChatRoomMember(models.Model):
    room = models.ForeignKey(
        ChatRoom, 
        on_delete=models.CASCADE, 
    )
    user = models.ForeignKey(
            settings.AUTH_USER_MODEL,
            on_delete=models.CASCADE
    )

    class Meta:
        db_table = 'chat_room_member'


class ChatMessage(models.Model):
    room = models.ForeignKey(
        ChatRoom, 
        on_delete=models.CASCADE, 
    )
    user = models.ForeignKey(
            settings.AUTH_USER_MODEL,
            on_delete=models.CASCADE
    )
    message = models.CharField(max_length=255)
    created_at = models.DateTimeField(default=datetime.now)

    class Meta:
        managed = True
        db_table = 'chat_message'
Вернуться на верх