Извлечение объектов из модели с помощью фильтра по 2-му классу модели

У меня есть следующие несколько классов в моем models.py

class Account(models.Model):
    user = models.OneToOneField(User, null=True, on_delete=models.CASCADE)
    name = models.CharField(max_length=255, null=True)

class Challenge(models.Model):
    match_time = models.DateTimeField(null=True)
    totalPlayers = models.IntegerField(default=1)
    status = models.CharField(max_length=100, default="pending")
    created_by = models.ForeignKey(Account, on_delete=models.CASCADE)
    expiry_time = models.DateTimeField(null=True)

class Challenge_Participant(models.Model):
    player = models.ForeignKey(Account, on_delete=models.CASCADE)
    challenge = models.ForeignKey(Challenge, on_delete=models.CASCADE)
    status = models.CharField(max_length=100, default="pending")

Что я пытаюсь сделать, так это получить доступ ко всем Challenge objects, в которых участвует зарегистрированный пользователь (поэтому в Challenge_Participant, player будет равен request.user.account, а challenge будет равен искомому вызову) и исключить те вызовы, которые созданы самим пользователем (потому что вызовы, в которых пользователь участвует сам, есть объект Challenge_Participant и для этого случая)

Я не могу сделать запрос для извлечения всех Challenges, в которых request.user является частью.

Я пытаюсь сделать что-то вроде этого,

challenges = Challenge.objects.filter().exclude(created_by = request.user.account)

Я хочу отфильтровать те вызовы, в которых объекты Challenge_Participant имеют user равный вошедшему пользователю и challenge равный искомому вызову. Я не могу понять, что я могу написать в Filter comamnd в таком случае

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

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