В Django кнопка шаблона работает не так, как ожидалось

В своем проекте я использовал функцию toggle_follow, которая работает нормально, но в моем шаблоне при первом нажатии ничего не изменилось, при втором нажатии она превращается в unfollow, как и ожидалось, а после повторного нажатия она становится follow, что также ожидалось. После этого он не работает. Хотя follow отображается на следующей вкладке и обновляет список, но кнопка перестала работать.

Проблема в том, что счетчик следования не обновляется должным образом и не сохраняется в базе данных. Если я следую за кем-то, а другой пользователь посещает тот же профиль, пользователь по умолчанию видит, что он следует за пользователем, за которым следую и я, что не соответствует ожиданиям.

Но для первых трех раз результат ожидается и работает правильно.

my models.py >>>>

class Follow(models.Model):
    user = models.ForeignKey(User, on_delete=models.CASCADE, related_name="follow")
    followed = models.ForeignKey(User, on_delete=models.CASCADE, related_name="followers")

    class Meta:
        verbose_name = "following"
        verbose_name_plural = "followings"
        unique_together = ["user", "followed"]
    def str(self):
        return f"{self.user} is following {self.followed}"
    def followed_post(self):
        return self.followed.posts.order_by("-date").all()

my views.py >>>>

@login_required
def toggle_follow(request, id):
    if request.method == "GET":
        return HttpResponse(status=405)
    if request.method == "POST":
        try:
            follow_obj = Follow.objects.get(user=request.user.id, followed=id)
        except Follow.DoesNotExist:
            try:
                to_follow = User.objects.get(pk=id)
            except User.DoesNotExist:
                return HttpResponse(status=404)
            else:
                new_follow_obj = Follow(user=request.user, followed = to_follow)
                new_follow_obj.save()
        else:
            follow_obj.delete()
        return HttpResponseRedirect(reverse("profile", args=[id]))

@login_required
def profile(request, id):
    data = User.objects.get(pk=id)
    posts = data.posts.order_by("-date").all()
    followingId = Follow.objects.filter(user=id).values_list('followed',flat=True)
    followersId = Follow.objects.filter(followed=id).values_list('id',flat=True)
    followingUser = User.objects.filter(id__in = followingId)
    followersUser = User.objects.filter(id__in = followersId)
    paginator = Paginator(posts, 10)
    page_num = request.GET.get('page')
    page_obj = paginator.get_page(page_num)
    return render(request, "network/profile.html", {"data": data, "following": followingUser, "followerss": followersUser, "page_obj": page_obj, "comment":ProcComment(auto_id=False)})

мой шаблон >>>

<div class="profile-username">
            {{ data.username }}
        </div>
        <div class="profile-buttons">
            {% if user.id != data.id %}
                <form action="{% url 'toggle_follow' id=data.id %}" method="POST">
                    {% csrf_token %}
                {% if user in followerss %}
                        <button type="submit" class="btn btn-danger unfollow">
                            <svg viewBox="0 0 16 16" class="bi bi-person-x-fill" fill="currentColor" xmlns="http://www.w3.org/2000/svg%22%3E
                                <path fill-rule="evenodd" d="M1 14s-1 0-1-1 1-4 6-4 6 3 6 4-1 1-1 1H1zm5-6a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm6.146-2.854a.5.5 0 0 1 .708 0L14 6.293l1.146-1.147a.5.5 0 0 1 .708.708L14.707 7l1.147 1.146a.5.5 0 0 1-.708.708L14 7.707l-1.146 1.147a.5.5 0 0 1-.708-.708L13.293 7l-1.147-1.146a.5.5 0 0 1 0-.708z"/>
                            </svg>
                            {% trans "Unfollow" %}
                        </button>
                {% else %}
                        <button type="submit" class="btn btn-success follow">
                            <svg viewBox="0 0 16 16" class="bi bi-person-plus-fill" fill="currentColor" xmlns="http://www.w3.org/2000/svg%22%3E
                                <path fill-rule="evenodd" d="M1 14s-1 0-1-1 1-4 6-4 6 3 6 4-1 1-1 1H1zm5-6a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm7.5-3a.5.5 0 0 1 .5.5V7h1.5a.5.5 0 0 1 0 1H14v1.5a.5.5 0 0 1-1 0V8h-1.5a.5.5 0 0 1 0-1H13V5.5a.5.5 0 0 1 .5-.5z"/>
                            </svg>
                            {% trans "Follow" %}
                        </button>
                {% endif %}

Я застрял более чем на неделю. Любая помощь будет оценена по достоинству.

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