Django ModelForm не действительна (не сохраняется в базу данных)

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

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

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:
    form =  SettingUpdateForm(request.POST, instance=setting)
    if form.is_valid():
        form.save()
        return redirect('settingsHome')

return render(request, 'main/viewSettings.html', {'setting': setting, 'form':form})

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:

URLS.PY:

from django.contrib import admin
from django.conf.urls import url
from django.urls import path , include
from accounts import views as v
from main import views as views

urlpatterns = [
    path('admin/', admin.site.urls),

    # Accounts
    path('login/home/' , views.home , name = 'home'),
    path('', v.register , name='register'),
    path('' , include('django.contrib.auth.urls') , name = 'login'),

    #Trial Balance
    path('KyletrbSettings' , views.KyletrbSettings , name = 'KyletrbSettings'),
    path('Kyletrb', views.Kyletrb , name = 'Kyletrb'),
    path('KyletrbMonth', views.KyletrbMonth , name = 'KyletrbMonth'),
    path('pdf' , views.printToPdf, name='printToPdf'),
    path('XLS' , views.printToXLS , name='printToXLS'),
    path('trb_Monthly' , views.trb_Monthly , name='trb_Monthly')

    #Settings
    path('settings', views.settingsHome , name='settingsHome'),
    path('ns' , views.newSetting , name='newSetting'),
    path('accConnect/setting/<int:settings_pk>', views.viewSettings, name='viewSettings' ),

]

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

Если кто-то может что-то увидеть, пожалуйста, помогите.

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