Как сделать сложный запрос к базе данных в Django

Я хочу получить данные из моей БД SQLite.

Мои модели:

class Group(models.Model):
    groupName = models.CharField(max_length=100)
    description = models.CharField(max_length=255)
    inviteKey = models.UUIDField(default=uuid.uuid4,
                                 unique=True,
                                 editable=False)

    createdAt = models.DateTimeField(auto_now_add=True)
    updatedAt = models.DateTimeField(auto_now=True)
    deletedAt = models.DateTimeField(auto_now=True)


class Members(models.Model):
    userId = models.ForeignKey(User, on_delete=models.CASCADE)
    groupId = models.ForeignKey(Group, on_delete=models.CASCADE)
    isAdmin = models.BooleanField(default=False)

А также встроить пользователей.

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

Что я пробовал

def getGroups(request):
    currentUserId = request.user.id
    # 1. Get all groups where currentUser is member.
    groups = Members.objects.filter(userId_id = currentUser.id) # this always return 3 object which is wrong.
    # by that filter doesn't work
    # other steps ..
    return render(request, 'group/allGroups.html')

Моя таблица членов:

Members table

Моя таблица групп:

enter image description here

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