Функция обновления Django ModelForm возвращает ошибку

В настоящее время у меня есть модель настроек для моего приложения Django, которая сохраняет набор настроек для чтения из остальной части программы.

Я попытался создать способ обновления этих настроек в приложении, как показано ниже.

Однако при нажатии на кнопку обновления приложение возвращает переменную 'error':'Bad info' вместо обновления базы данных. Кто-нибудь знает, что может быть причиной этого, потому что я не могу найти никаких ошибок в коде?

Views.py:

def viewSettings(request,  settings_pk):
    setting = get_object_or_404(SettingsClass, pk=settings_pk)
    if request.method == 'GET':
        form = SettingUpdateForm(instance=setting)
        return render(request, 'main/viewSettings.html', {'setting': setting, 'form':form})
    else:
        try:
            form =  SettingUpdateForm(request.POST, instance=setting)
            form.save()
            return redirect('settingsHome')
        except ValueError:
            return render(request, 'main/viewSettings.html', {'setting': setting, 'form':form, 'error':'Bad info'})

Models.py:

Forms.py:

class SettingsForm(ModelForm):
     class Meta:
         model = SettingsClass
         fields = ('Complex','Trial_balance_Year_to_date' , 'Trial_balance_Monthly' , 'Income_Statement_Year_to_date' , 'Income_Statement_Monthly' , 'Age_Analysis' , 'Balance_Sheet' , 'Repair_and_Maintenance_General_Ledger' , 'Major_capital_Items_General_Ledger')

class SettingUpdateForm(ModelForm):
    class Meta:
        model = SettingsClass
        fields = '__all__'

ViewSettings.html:

да, потому что ваша форма не отправляется на URL вашего представления обновления, так как у вас есть объекты настроек, которые нужно обновить, и вы передаете settings_pk в представлении

поэтому вам нужно добавить id настроек, которые вам нужно обновить.

измените эту строку в HTML

<form method="POST">

to

<form method="POST" action="{ url 'view_name' settings.pk }">
Вернуться на верх