def post(self, request, *args, **kwargs): """ Handle POST of multiple files. """ forms = self.get_form() # Validate the form and formsets valid = True for key, form in forms.items(): if not form.is_valid(): valid = False # Validate conditionally_required meets_reqs = self.validate_conditional_requirements(forms) if valid and meets_reqs: instance = forms['document_form'].save(self.request) # Save formsets formset_keys = [ 'author_formset', 'file_formset', 'image_formset', 'website_formset' ] for key in formset_keys: if key in forms.keys(): for form in forms[key]: if form.has_changed(): form.save(instance=instance) instance.create_thumbnails() return HttpResponseRedirect(self.get_success_url()) ctx = self.get_context_data(**forms) ctx.update({'errors': True}) return self.render_to_response(ctx)
def __init__(self, forms, _formcls=None): if _formcls is None: JSONRPCService.__init__(self) for k in forms.keys(): s = FormProcessor({}, forms[k]) self.add_method(k, s.__process) else: JSONRPCService.__init__(self, forms) self.formcls = _formcls