Ошибка: 404 Page Not Found. После попытки обновить форму

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

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

При нажатии на кнопку обновления, однако, приложение возвращает ошибку page not found вместо обновления базы данных. Кто-нибудь знает, что может быть причиной этого, потому что я не могу найти никаких ошибок в коде?

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:

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

<form method="POST" action="{ url 'settingsHome' settings.pk }">

to

<form method="POST" action="{ url 'viewSettings' settings.pk }">

поскольку вы перенаправляете отправку формы в неправильное представление, а не в то представление, в котором вы обновляете объект настроек.

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