コード例 #1
0
ファイル: views.py プロジェクト: faxad/supplierZ
    def post(self, request, *args, **kwargs):
        self.object = self.get_object()
        form_class = self.get_form_class()
        form = self.get_form(form_class)
        formset = ContactInfoUpdateFormSet(self.request.POST)

        if 'add_contact_info' in request.POST:
            post = request.POST.copy()
            post['form-TOTAL_FORMS'] = int(post['form-TOTAL_FORMS']) + 1

            context = {
                'object': self.object,
                'form': form,
                'formset': ContactInfoUpdateFormSet(post, request.POST)
            }
        elif form.is_valid() and formset.is_valid():
            form.save()
            map(lambda x: ContactInfo.objects.filter(
                id=x.id).update(
                    supplier=self.object
                    ), formset.save(commit=False))
            formset.save()

            return super(SupplierUpdate, self).form_valid(form)
        else:
            context = {
                'object': self.object,
                'form': form,
                'formset': formset,
                'error_message': process_errors(
                    formset.errors,
                    form.errors
                )
            }

        return render_to_response(
            'core/update.html',
            context,
            context_instance=RequestContext(request)
        )
コード例 #2
0
ファイル: views.py プロジェクト: faxad/supplierZ
    def post(self, request, *args, **kwargs):
        form = SupplierForm(request.POST)
        post = request.POST.copy()
        context = {}

        if 'add_contact_info' in request.POST:
            post['form-TOTAL_FORMS'] = int(post['form-TOTAL_FORMS']) + 1

            context = {
                'formset': ContactInfoFormSet(post, request.POST)
            }
        elif 'remove_contact_info' in request.POST:
            formset = ContactInfoFormSet(post)
            data = formset.get_forms_after_delete()

            context = {
                'formset': ContactInfoUpdateFormSet(
                    queryset=ContactInfo.objects.none(),
                    data=data
                )
            }
        else:
            formset = ContactInfoFormSet(request.POST)

            if form.is_valid() and formset.is_valid():
                name = form.cleaned_data['name']
                remarks = form.cleaned_data['remarks']

                supplier = Supplier.objects.create(
                    name=name,
                    remarks=remarks
                )

                for form in formset:
                    ContactInfo.objects.create(
                        supplier=supplier,
                        contact_person=form.cleaned_data['contact_person'],
                        address=form.cleaned_data['address'],
                        telephone=form.cleaned_data['telephone'],
                        mobile=form.cleaned_data['mobile'],
                        fax=form.cleaned_data['fax'],
                        email=form.cleaned_data['email']
                    )

                return HttpResponseRedirect(reverse('index'))
            else:
                context = {
                    'formset': formset,
                    'error_message': process_errors(
                        formset.errors,
                        form.errors
                    )
                }

        context.update(
            {'form': form}
        )

        return render_to_response(
            'core/create.html',
            context,
            context_instance=RequestContext(request)
        )