Hello
Help me please
When I register the information, the first form saves the information, but when I register the second information, it gives an error and does not save the information.
views.py
class ClassesInline():
form_class = ClassesForm
model = Classes
template_name = "classes/classes_create_or_update.html"
def form_valid(self, form):
named_formsets = self.get_named_formsets()
if not all((x.is_valid() for x in named_formsets.values())):
return self.render_to_response(self.get_context_data(form=form))
kelas = form.save(commit=False)
kelas.term = self.request.user.term
kelas.branch = self.request.user.branch
kelas.personnel_create = self.request.user
self.object = kelas.save()
for name, formset in named_formsets.items():
formset_save_func = getattr(self, 'formset_{0}_valid'.format(name), None)
if formset_save_func is not None:
formset_save_func(formset)
else:
formset.save()
return redirect('kelas:classes_index')
def formset_variants_valid(self, formset):
reservs = formset.save(commit=False) # self.save_formset(formset, contact)
# add this, if you have can_delete=True parameter set in inlineformset_factory func
for obj in formset.deleted_objects:
obj.delete()
for reserv in reservs:
reserv.classes = self.object
reserv.save()
class classesCreate(ClassesInline, CreateView):
def get_form_kwargs(self):
kwargs = super().get_form_kwargs()
kwargs['request'] = self.request
return kwargs
def get_context_data(self, **kwargs):
ctx = super(classesCreate, self).get_context_data(**kwargs)
ctx['named_formsets'] = self.get_named_formsets()
return ctx
def get_named_formsets(self):
if self.request.method == "GET":
return {
'reservs': ReservationFormSet(prefix='reservs'),
}
else:
return {
'reservs': ReservationFormSet(self.request.POST or None, prefix='reservs'),
}
The error that is observed and its reason
