сохранить набор форм по одной строке через вызов ajax - PullRequest
0 голосов
/ 25 апреля 2019

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

В атрибуте Post Post имя имеет значение form-1-Name Я думаю, поэтому форма становится недействительной.

@method_decorator(login_required, name='dispatch')
class ProductionProcessCreateView(CreateView):
    model = ProductionProcess
    form_class = ProductionProcessForm
    template_name="master/productionprocess_form.html"
    ExampleFormSet = modelformset_factory(ProductionProcess,form=form_class,formset=BaseProductionProcessFormSet,extra=1,)


    def get(self, request, *args, **kwargs):
        self.object = self.get_object()
        context = super(ProductionProcessCreateView, self).get_context_data(**kwargs)
        if self.request.POST:
            context['ProductionProcessForm'] = self.ExampleFormSet(self.request.POST)

        else:
            context['ProductionProcessForm'] = self.ExampleFormSet()        
        return self.render_to_response(context)


    def post(self, request, *args, **kwargs):

        try:  
            ExampleFormSet = self.ExampleFormSet(self.request.POST)

        except ValidationError:
            ExampleFormSet = None

        self.object = self.get_object()
        if ExampleFormSet.is_valid():


            for form in ExampleFormSet.save(commit=False):
                form.user = self.get_object().user
                form.instance.ProductName_id = self.kwargs.get('pk')
                form.save()
            messages.success(self.request, _('Production Process added successfully'))
            return redirect("tailoringproducts")
        else:


            return self.render_to_response(self.get_context_data(ExampleFormSet=ExampleFormSet))

class BaseProductionProcessFormSet(BaseModelFormSet):
    def __init__(self,prefix=None,*args,**kwargs):
        super(BaseProductionProcessFormSet, self).__init__(*args, **kwargs)
        self.queryset = ProductionProcess.objects.filter(ProductName_id=1)

Expected каждая строка имеет кнопку сохранения, когда при нажатии кнопки сохранения данные сохраняются в базе данных, как мы можем хранить данные с помощью вызова ajax

...