Django2: Сохранение экземпляров для модели из набора форм модели с использованием ручных методов - PullRequest
0 голосов
/ 14 ноября 2018

У меня есть набор форм, который я создаю экземпляры модели в моем представлении.Однако это много кода, и для его выделения я использую методы представления классов вручную:

class ClassView(LoginRequiredMixin, GroupRequiredMixin, View):

      template_name = 'form.html'
      form = Form

      get(self, request, *args, **kwargs):

          formset = modelformset_factory(
                Model,
                form=self.form,
                formset=BaseFormSet,
                extra=0,
            )

         self.formset = formset(queryset=qs)


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

        user = request.user

        formset = modelformset_factory(
                    Model,
                    form=self.formform,
                    formset=BaseCRVFormSet,
                    extra=0,
                )

        if request.POST['submit'] == 'Submit form':

            sample_id = request.POST.get('sample_id')
            obj = Sample.objects.get(
                        id=sample_id
                    )

            formset = formset(request.POST)

            if formset.is_valid():

                for form in formset:
                    self.reportVariant(form)

                self.reportSample(obj, user)



    def reportVariant(self, form):

         crv_obj = form.save(commit=False)
         report = form.clean_report()           

        if report == 'report':

            # Final report for variant
            crv_obj.final_reported = True
            crv_obj.final_report_date = timezone.now()
            crv_obj.final_vasr_id = crv_obj.primary_vasr_id

            crv_obj.primary_vasr_id = None

            crv_obj.save()

        else:
            ...more...


    def reportSample(self, obj, user):

          ... more saving to model ...

Мой вопрос заключается в том, должен ли я делать это в своем классе формы?После очистки, вызывая мои методы, есть методы reportVariant () как дополнение к классу формы?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...