МодельФормы не сохраняется в базе данных

В настоящее время у меня есть 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' ),

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