Извлечение объектов из модели с помощью фильтра по 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 в таком случае
Из этих результатов вызовов я исключаю все вызовы, которые созданы самим пользователем.