Создание того же запроса в аннотации - PullRequest
0 голосов
/ 23 декабря 2018

У меня есть запрос, который получит весь следующий список пользователя 3.Я также хочу проверить, соответствует ли зарегистрированный пользователь каждому из следующего списка пользователя 3.Например, предположим, что следующий список пользователя 3: 2,3,4, а вошедший в систему пользователь - 2 и 4. Таким образом, результатом будет: 2:1, 3:0 and 4:1 1, означающее, что вошедший в систему пользователь следует, и 0, указывающее вошедший в систему пользователь.не следует.Я пытаюсь сделать это с помощью этого запроса:

Следующая модель

class Following(models.Model):
    target = models.ForeignKey('User', related_name='followers', on_delete=models.CASCADE, null=True)
    follower = models.ForeignKey('User', related_name='targets', on_delete=models.CASCADE, null=True)
    created_at = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        return '{} is followed by {}'.format(self.target, self.follower)

Запрос

User.objects.filter(followers__follower=3).order_by('-followers__created_at').\
    annotate(is_following=Count('followers', filter=Q(followers__follower=self.request.user), distinct=True))

Однако по какой-то причине запрос annotate вообще не выполняется.Я думаю, что это потому, что это тот же запрос, что и основной запрос, но с другими параметрами.Как я могу сделать так, чтобы мой запрос работал так, как я хочу, чтобы он работал?

...