МодельФормы не сохраняется в базе данных
В настоящее время у меня есть ModelForm в веб-приложении Django-Python, которое позволяет пользователям редактировать параметры финансовых документов.
В настоящее время форма по какой-то причине не сохраняется в базу данных. Я думаю, что это связано с валидностью формы/модели.
Это происходит потому, что некоторые поля BooleanFields являются True/False или это как-то связано с тем, как импортируется форма. Я пытался проверить, вызывает ли проблему тот факт, что я использую 2 формы для одной модели, но я не могу увидеть ошибку здесь.
Пожалуйста, посмотрите приведенный ниже код: 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})
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__'
Models.py:
class SettingsClass(models.Model):
Complex = models.CharField(choices=complex_list , max_length = 22 ,default='1' , unique=True)
#Trial Balance Year To Date
Trial_balance_Year_to_date= models.BooleanField(default = False)
tbytd_Include_opening_balances=models.BooleanField(default = False)
tbytd_Only_use_main_accounts=models.BooleanField(default = False)
tbytd_Print_null_values=models.BooleanField(default = False)
tbytd_Print_description=models.BooleanField(default = True)
tbytd_Print_account=models.BooleanField(default = True)
tbytd_Sort_by_account_name=models.BooleanField(default = True)
URLS.py:
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' ),
]