Получение вводимых данных в Django без форм

У меня есть страница с несколькими кнопками, и только некоторые из них появляются в зависимости от сценария. Более конкретно, у меня есть страница профиля пользователя, которая предоставляет пользователю различные кнопки в зависимости от его отношения к пользователю, которого он просматривает.

Я определяю, какие кнопки отображать, определяя отношения пользователя с пользователем, которого он просматривает, затем использую серию операторов if на странице профиля для отображения нужных кнопок. Например, если пользователь просматривает незнакомого человека, у него есть опции блокировки и отправки запроса на дружбу. Если пользователь просматривает кого-то, кто является его другом, у него есть опции отмены дружбы и блокировки.

Бэкэнд должен знать, что пользователь нажал кнопку отправки, чтобы он мог обновить базу данных. Использование форм для этого кажется чрезмерным, поскольку мне нужен только простой вход для отправки, чтобы достичь бэкенда (никаких других пользовательских данных). Я показываю то, что я сейчас использую ниже, но по какой-то причине он вообще отказывается отправлять POST запрос.

Шаблон профиля

      <h1>{{viewingName}}</h1>

      <img src="{{displayed_user.profile_picture.url}}" width="240">

      <p>{{displayed_user.bio}}</p>

      {% if areFriends %}

      <p>You're viewing your friend</p>
      <input type="submit" value="Remove Friendship" name ="remove_friends_form">
      <input type="submit" value="Block" name ="block_form">

      {% elif activeRequestTo %}

      <p>Friend Request Delivered. Awaiting response</p>

      {% elif activeRequestFrom %}

      <p>Incoming friend request</p>
      <input type="submit" value="Accept Friend Request" name ="accept_friend_form">
      <input type="submit" value="Reject Friend Request" name ="reject_friend_form">
      <input type="submit" value="Block" name ="block_form">

      {% elif viewingSelf %}

      <p>Viewing yourself</p>
      <input type="submit" value="Edit Profile" name ="edit_profile_form">

      {% else %}

      <p>Send a friend request</p>
      <input type="submit" value="Send Friend Request" name ="send_request_form">
      <input type="submit" value="Block" name ="block_form">

      {% endif %}


      <a href="/logout"><p>Logout</p></a>

Представление профиля (часть, которая обрабатывает входящие данные)

if 'send_request_form' in request.POST:
        #Check if request.user is blocked by other user
        if Block.objects.is_blocked(request.user, displayed_user):
            return HttpResponse("this person has blocked you")
        Friend.objects.add_friend(request.user, displayed_user)
        return HttpResponse('test')

    if 'accept_friend_form' in request.POST:
        friend_request = FriendshipRequest.objects.get(from_user=displayed_user, to_user=request.user)
        friend_request.accept() 

    if 'reject_friend_form' in request.POST:
        friend_request = FriendshipRequest.objects.get(from_user=displayed_user, to_user=request.user)
        friend_request.reject()

    if 'remove_friends_form' in request.POST:
        Friend.objects.remove_friend(request.user, displayed_user)
    
    if 'block_form' in request.POST:
        Block.objects.add_block(request.user, displayed_user)

    if 'unblock_form' in request.POST:
        Block.objects.remove_block(request.user, displayed_user)

Заранее спасибо за помощь

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