Как назначить функцию кнопке в Django

Я разрабатываю сайт на основе django. Я хочу обновлять информацию о пользователе и удалять его, если нужно, на той же странице. Я создал обновление и оно работает правильно. Но когда я обращаюсь к функции удаления пользователя в том же html-файле, кнопка, которую я хочу, чтобы она удаляла пользователя, также обновляется, как и другая кнопка. Мне нужно, чтобы обе кнопки работали для своих целей. Я подумал, что если ничего не менять, то назначение функции удаления кнопке может помочь, поэтому я и написал такой заголовок. Спасибо!

 <div class="login--wrapper">
        <form method="POST" class="form">
            {% csrf_token %}
            <div class="center">
                <h1>Kullanıcı Ayarları</h1>
                {% csrf_token %}
                {% for field in form  %}
                <div class="mb-3">
                    <label for="exampleInputPassword1" class="from-label">{{field.label}}</label>
                    {{field}}
                </div>
                {% endfor %}
                <button type="submit" class="btn btn-primary">Update Info</button>
                <button type="submit" class="btn btn-primary">Delete User </button>
                

            </div>
def DeleteUser(request,pk):
    user=DataEbotUser.objects.get(id=pk)
    if request.method=='POST':
        user.delete()
        
    
    context={'user':user}
    return render(request,'home/UsersPage.html',context)
def users(request,pk):  
    user=DataEbotUser.objects.get(id=pk)
    form=EditUserForm(instance=user)
    
    
    if request.method=='POST':
        form=EditUserForm(request.POST, instance=user)
        if form.is_valid():
            form.save()
            
            context={'form':form , 'users':users}
    return render(request,'home/UsersPage.html',context)

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

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

<button type="submit" class="btn btn-primary">Update Info</button>
<a class="btn btn-danger" type="button" href="{% url 'delete' user.pk %}">Delete User</a>

Поскольку функция users является единственной, управляющей обновлением информации пользователя на основе данных формы, кнопка Update Info остается в форме submit button.

С другой стороны, кнопка Delete User отличается. Она просто вызывает функцию DeleteUser, передавая ей pk, которая будет использоваться для удаления пользователя.

Вот некоторые моменты, которые следует учитывать:

  • Функция DeleteUser не должна вызываться напрямую. Именно функция users должна выводить страницу.
  • Вы должны рендерить user object в контексте вашей функции users, чтобы иметь возможность получить pk пользователя, который будет использоваться для кнопки delete
  • .
  • Функция DeleteUser должна не рендерить шаблон, а перенаправлять на функцию users. Что-то вроде return redirect('users', pk=pk)
  • .
Вернуться на верх