Django несколько форм, одна форма сбрасывает другую форму

Есть несколько форм в моем представлении... Я хочу, чтобы в базе данных изменялось только то, что я отправил. Чтобы формы не перезаписывали друг друга. Как я могу сделать это с помощью моего представления?

Я даже заметил, что порядок, в котором находится каждый '..._form.is_valid()', имеет значение для того, что будет перезаписано

views.py

@login_required
def DashboardView(request):

    browser = str(request.user_agent.browser.family)

    user = str(request.user)
    short_user = user[0:7] + "..."

    try:
        radius = request.user.fieldradius
    except FieldRadius.DoesNotExist:
        radius = FieldRadius(user=request.user)

    try:
        font_size = request.user.fontsize
    except FontSize.DoesNotExist:
        font_size = FontSize(user=request.user)

    try:
        change_color = request.user.colors
    except Colors.DoesNotExist:
        change_color = Colors(user=request.user)

    try:
        toggle_settings = request.user.togglesettings
    except ToggleSettings.DoesNotExist:
        toggle_settings = ToggleSettings(user=request.user)

    try:
        page_details = request.user.pagedetails
    except PageDetails.DoesNotExist:
        page_details = PageDetails(user=request.user)

    if request.method == 'POST':
        form = FieldForm(request.POST, instance=Field(user=request.user))
        togglesettings_form = ToggleSettingsForm(
            request.POST, instance=toggle_settings)

        radius_form = FieldRadiusForm(request.POST, instance=radius)
        change_color_form = ColorsForm(request.POST, instance=change_color)
        fontsize_form = FontSizeForm(request.POST, instance=font_size)
        pagedetails_form = PageDetailsForm(
            request.POST, request.FILES, instance=page_details)

        if togglesettings_form.is_valid():
            togglesettings_form.save()
            return redirect('/dashboard/#panel1')

        if form.is_valid():
            time.sleep(1.5)
            obj = form.save(commit=False)
            obj.creator_adress = get_client_ip(request)
            obj.save()
            return redirect('/dashboard')

        if radius_form.is_valid():
            radius_form.save()
            return redirect('/dashboard')

        if fontsize_form.is_valid():
            fontsize_form.save()
            return redirect('/dashboard')

        if change_color_form.is_valid():
            change_color_form.save()
            return redirect('/dashboard')

        if pagedetails_form.is_valid():
            pagedetails_form.save()
            return redirect('/dashboard')

    else:
        form = FieldForm()
        radius_form = FieldRadiusForm(instance=radius)
        fontsize_form = FontSizeForm(instance=font_size)
        change_color_form = ColorsForm(instance=change_color)
        pagedetails_form = PageDetailsForm(instance=page_details)
        togglesettings_form = ToggleSettingsForm()

    return render(request, 'dashboard.html', {'form': form, 'togglesettings_form': togglesettings_form, 'fontsize_form': fontsize_form, 'change_color_form': change_color_form, 'browser': browser, 'short_user': short_user, 'radius_form': radius_form, 'radius': radius, 'pagedetails_form': pagedetails_form})

Если я отправляю форму, например, togglesettings_form, то в базе данных она выглядит следующим образом:

enter image description here

После этого я отправляю другую форму, например, форму fontsize_form. Форма fontsize_form будет сохранена, но затем форма togglesettings_form будет сброшена:

enter image description here

Формы и модели, если вы хотите их увидеть: https://pastebin.com/PhaFCdBP

Обычно я называю кнопку отправки на форме чем-то вроде "my-form"

Тогда вы можете просто пойти:

if "my-form" in request.POST:
   then do what you need to do

Посмотреть пример:

 if 'load_doc' in request.POST:               
                file = request.FILES['document_file']
                doc = documents(client=current_client,document_name=request.POST['document_name'],document_file=file)
                doc.save()

html пример:

<form method="post" action="" enctype="multipart/form-data">
{% csrf_token %}
<div class="panel-body">{{ single_load_form|crispy }}</div>
<div class="panel-footer"><button class="btn btn-primary" name="load_doc">Submit</button></form></div>
Вернуться на верх