Как создать в django опцию annotate или agregate для определения того, что request.user уже есть в m2m relations

Я уже 2 дня ищу способ определить, следит ли зарегистрированный пользователь за каким-либо сообщением или нет. вот мои модели:

class User(AbstractUser):
    pass


class Post(models.Model):
    user = models.ForeignKey(
        "User", on_delete=models.CASCADE, related_name="posts")
    owner = models.ForeignKey(
        "User", on_delete=models.PROTECT, related_name="post_posted")

    followers = models.ManyToManyField(
        "User", default=None, blank=True, related_name="posts_followers")
    likes = models.ManyToManyField(
        "User", default=None, blank=True, related_name="posts_likes")
    unlikes = models.ManyToManyField(
        "User", default=None, blank=True, related_name="posts_unlikes")

    content = models.TextField(blank=True, null=True)

    timestamp = models.DateTimeField(auto_now_add=True)

Основная идея заключается в том, что когда страница рендерится django помещает Buton Follow или unfollow в зависимости от того, существует пользователь или нет, в отношение followers m2m.

Теперь в представлении у меня есть набор запросов, который я использую для определения номеров "нравится" и "не нравится", это работает отлично, но теперь мне нужен ботон для следования и разворачивания как дополнительная задача, мне нужно добавить еще один ботон для "нравится" и "не нравится" тоже.

# Get all post from the DB
    allposts = Post.objects.all().annotate(num_likes=Count(
        'likes'), num_unlikes=Count('unlikes')).order_by("-timestamp")

Если кто-то может помочь мне, я буду очень благодарен. ?

Заранее спасибо.

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