'Having a following followers problem in Django "too many values.."

I'm about to finish a Django based project, and the last step of this project is to build a followers/following feature. I can unfollow someone I've followed manually from the admin, but I can't follow someone from my html view. It misses me just one tiny thing to add into my html code but I'm really stuck. My code

My Model:

from django.db import models
from django.contrib.auth.models import AbstractUser

# Create your models here.
class User(AbstractUser):
    CREATOR = "CREATOR"
    SUBSCRIBER = "SUBSCRIBER"

    ROLE_CHOICES = (
        (CREATOR, "Créateur"),
        (SUBSCRIBER, "Abonné"),
    )

    profile_photo = models.ImageField(upload_to='profile_photos/', default='profile_photos/default.png', blank=True, null=True)
    role = models.CharField(max_length=10, choices=ROLE_CHOICES, default=SUBSCRIBER)
    follows = models.ManyToManyField('self', related_name='followers', symmetrical=False)


My Views:

@login_required
def abonnements(request):
    user = request.user
    followers = user.followers.all()
    follows = user.follows.all()
    if request.method == 'POST':
        if request.POST.get('follow'):
            if request.POST.get('follow') == user.username:
                return render(request, 'blog/abonnements.html', {'followers': followers, 'follows': follows, "error": "You can't follow yourself!"})
            try:
                followed_user = User.objects.get(request.POST.get('follow'))
            except User.DoesNotExist:
                return render(request, 'blog/abonnements.html', {'followers': followers, 'follows': follows, "error": "User does not exist"})
            else:
                print(followed_user)
        elif request.POST.get('unfollow'):
            user.follows.remove(User.objects.get(pk=request.POST.get('unfollow')))
            return render(request, 'blog/abonnements.html', {'followers': followers, 'follows': follows, "success": "You are no longer following " + request.POST.get('unfollow')})
    return render(request, 'blog/abonnements.html', {'followers': followers, 'follows': follows})

My HTML

{% extends 'base.html' %}
<title>{% block title %}Abonnements{% endblock %}</title>
{% block content %} {% include 'partials/_navbar.html' %}
<main class="corps_abonnements">
  <section class="suivre">
    <p class="suivre_utilisateurs_titre">Suivre d'autres utilisateurs</p>

    
    <form method="post">
      {% csrf_token %}
      <input type="text" name="follow" value="">
      <input type="submit" value="Envoyer">
    </form>


  </section>
  <section class="abonnements">
    <p color="red">{{ error }}</p>
    {% if success %}<p color="green">{{ success }}</p>{% endif %}
    <p class="abonnements_titre">Abonnements</p>
    {% for user in follows %}
      <div class="utilisateur_desabonner_container">
        <p class="nom_utilisateur_desabonner">{{ user.username }}</p>
        <form method="post">
          {% csrf_token %}
          {% if user in follows %}
            <input type="hidden" name="unfollow" value="{{ user.id }}">
            <button style="background-color:red;" type="submit" class="creer_critique_demande">
              Se désabonner
            </button>
          {% endif %}
        </form>
      </div>
    {% endfor %}
  </section>
  <section class="abonnes">
    <p class="abonnes_titre">Abonnés</p>
    {% for user in followers %}
      <div class="utilisateur_abonne_container">
      <p class="nom_utilisateur_abonne">{{ user.username }}</p>
    </div>
    {% endfor %}
  </section>
</main>
{% endblock %}

So when I put the connected user name in the input, it returns me the error "you can't follow yourself", it means that my code is good

the message

but If I try to put the username of another user I want to follow, it raises me an error. Can someone help me please ?

ValueError at /abonnements/
too many values to unpack (expected 2)
Request Method: POST
Request URL:    http://127.0.0.1:8000/abonnements/

views.py, line 155, in abonnements
followed_user = User.objects.get(request.POST.get('follow'))


Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source