обновить django inlineformset с представлением на основе классов - PullRequest
0 голосов
/ 16 июня 2020

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

это мой UpdateView

class MyUpdateView(LoginRequiredMixin,SuccessMessageMixin,UpdateView):
    model = MyModel
    form_class = MyModelForm
    template_name = 'template/template.html'
    def get_context_data(self,*args,**kwargs):
        data = super().get_context_data(*args,**kwargs)
        if self.request.POST:
            data['formset'] = MyUpdateInlineFormSet(self.request.POST,instance=self.object)
            data['formset'].full_clean()
        else:
            data['formset'] = MyUpdateInlineFormSet(instance=self.object)
        return data    
    def form_valid(self,form):
        self.object = form.save()
        context = self.get_context_data()
        formset = context['formset']

        with transaction.atomic():

            if formset.is_valid() and form.is_valid() and formset.cleaned_data!={}:
                formset.instance = self.object
                formset.save()
            else:
                return render(self.request,self.template_name,context)
        return super().form_valid(form)
    def get_success_url(self):
        return reverse_lazy('my_app:invoice',kwargs={'pk':self.object.pk})

и это мой набор встроенных форм

MyUpdateInlineFormSet= inlineformset_factory(
MyModel,MyChild,form=MyChildForm,fields=(
    some fields
),extra=1)

Я очень ценю вашу помощь ...

...