def create(self, validated_data): schema_request = requests.get(validated_data['schemaURL']) schema_request.raise_for_status() schemadoc = etree.fromstring(schema_request.content) targetNamespace = schemadoc.get('targetNamespace') nsmap = { k: v for k, v in schemadoc.nsmap.items() if k and v != "http://www.w3.org/2001/XMLSchema" } try: existingElements, allElements = generateJsonRes( schemadoc, validated_data['root_element'], validated_data['prefix']) except ValueError as e: raise ValidationError(e) return templatePackage.objects.create( existingElements=existingElements, allElements=allElements, targetNamespace=targetNamespace, nsmap=nsmap, **validated_data)
def post(self, request, *args, **kwargs): form = AddTemplateForm(request.POST) if form.is_valid(): name = form.cleaned_data.get('template_name') prefix = form.cleaned_data.get('namespace_prefix') root = form.cleaned_data.get('root_element') schema = form.cleaned_data.get('schema') if templatePackage.objects.filter(pk=name).exists(): return HttpResponse('ERROR: templatePackage with name "' + name + '" already exists!') from requests.packages.urllib3.exceptions import ( InsecureRequestWarning, InsecurePlatformWarning) requests.packages.urllib3.disable_warnings(InsecurePlatformWarning) requests.packages.urllib3.disable_warnings(InsecureRequestWarning) schema_request = requests.get(schema) schema_request.raise_for_status() schemadoc = etree.fromstring(schema_request.content) targetNamespace = schemadoc.get('targetNamespace') nsmap = { k: v for k, v in schemadoc.nsmap.items() if k and v != "http://www.w3.org/2001/XMLSchema" } existingElements, allElements = generateJsonRes( schemadoc, root, prefix) existingElements["root"]["nsmap"] = nsmap templatePackage.objects.create(existingElements=existingElements, allElements=allElements, name=name, prefix=prefix, schemaURL=schema, targetNamespace=targetNamespace, root_element=root) return redirect('/template/edit/' + name) return render(request, self.template_name, {'form': form})
def create(self, validated_data): schema_request = requests.get(validated_data['schemaURL']) schema_request.raise_for_status() schemadoc = etree.fromstring(schema_request.content) targetNamespace = schemadoc.get('targetNamespace') nsmap = {k: v for k, v in schemadoc.nsmap.items() if k and v != "http://www.w3.org/2001/XMLSchema"} try: existingElements, allElements = generateJsonRes( schemadoc, validated_data['root_element'], validated_data['prefix'] ) except ValueError as e: raise ValidationError(e) return templatePackage.objects.create( existingElements=existingElements, allElements=allElements, targetNamespace=targetNamespace, nsmap=nsmap, **validated_data )