Django Несколько форм на одной странице взаимодействуют друг с другом

У меня есть страница с двумя формами. Когда я нажимаю на кнопку Update Profile на левой форме, она также отправляет POST запрос на вторую форму, что не то, что я хочу. Я не хочу, чтобы они взаимодействовали вместе. Как я могу это сделать?

enter image description here

views.py

@login_required(login_url='signin')
def dashboard(request):
    global user_id

    data = Account.objects.filter(user=request.user)

    profile_data = Profile.objects.get(user=request.user)

    profile_form = ProfileForm(request.POST or None, instance=profile_data)
    addaccount_form = AddAccountForm(request.POST or None)

    # Update Profile Settings
    if profile_form.is_valid():
        print("worked")
        profile_form.save()

    if request.method == "POST":
        if addaccount_form.is_valid():
            # save account to DataBase

            return HttpResponseRedirect("http://127.0.0.1:7000/dashboard/")

    context = {
        'data': data,
        'profile_form': profile_form,
        'addaccount_form': addaccount_form,

    }

    return render(request, "main/dashboard.html", context)

dashboard.html

<form action="" method="POST">
        {% csrf_token %}
        {{profile_form}}
        <button type="submit" class="updatebut">Update Profile</button>
</form>

<form action="" method="POST">
        {% csrf_token %}
        {{addaccount_form}}
        <button type="submit" class="addbut">Add Account</button>
</form>

Вы можете добавить имя к каждой из ваших кнопок отправки (например, name="addaccount" и name="updateprofile")

В вашем представлении добавьте следующее:

if 'addaccount' in request.POST: ---делать addacount elif 'updateprofile' в request.POST: ---делать обновление профиля

Быстрая и грязная!

Вы можете проверить, какая форма в вашем запросе

if 'profile_form' in request.POST:
    profile_form = ProfileForm(request.POST or None, instance=profile_data)
    if profile_form.is_valid():
        print("worked")
        profile_form.save()
elif 'addaccount_form' in request.POST:
    addaccount_form = AddAccountForm(request.POST or None)
    if addaccount_form.is_valid():
        # save account to DataBase
        return HttpResponseRedirect("http://127.0.0.1:7000/dashboard/")
Вернуться на верх