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' ),
]
Я знаю, что если форма недействительна, то она не сохранит данные, однако проблема в том, что я не могу найти место в коде, которое сделает форму недействительной.
Если кто-то может что-то увидеть, пожалуйста, помогите.