У меня есть запрос, который получит весь следующий список пользователя 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
вообще не выполняется.Я думаю, что это потому, что это тот же запрос, что и основной запрос, но с другими параметрами.Как я могу сделать так, чтобы мой запрос работал так, как я хочу, чтобы он работал?