def _render_graphiql(self, request: HttpRequest, context=None): if not self.graphiql: raise Http404() try: template = Template(render_to_string("graphql/graphiql.html")) except TemplateDoesNotExist: template = Template( open( os.path.join( os.path.dirname(os.path.abspath(strawberry.__file__)), "static/graphiql.html", ), "r", ).read()) context = context or {} # THIS enables subscriptions context.update({"SUBSCRIPTION_ENABLED": "true"}) response = TemplateResponse(request=request, template=None, context=context) response.content = template.render(RequestContext(request, context)) return response
def _wrapped_view(request, *args, **kwargs): enable_instrumentation() response = view_func(request, *args, **kwargs) disable_instrumentation() if isinstance(response, TemplateResponse): # We could use ``SingleTemplateResponse`` to catch both # django and restframework responses. Unfortunately # the content_type on restframework responses is set # very late (render), while at the same time django # defaults it to text/html until then. try: response.render() except jinja2.exceptions.TemplateError as err: response = TemplateResponse( request=request, template="400.html", context={'messages': [str(err)]}, # using=view_func.template_engine, status=400) response.render() soup = _inject_edition_tools( response, request, context=get_edition_tools_context_data()) if soup: # str(soup) instead of soup.prettify() to avoid # trailing whitespace on a reformatted HTML textarea response.content = str(soup) return response
def productEdit(request, id): if not request.user.is_active or not request.user.is_superuser: raise Http404 #filter other users try: id = int(id) product = models.Products.objects.get(id=id) except: raise Http404 #bad id or product with this id is not exist form = None if request.method == 'POST': response = {} saved = False form = forms.ProductForm(request.POST, request.FILES, instance=product) #check form if form.is_valid(): form.save() response['status'] = 'ok' saved = True else: response['status'] = 'error' context = RequestContext(request, { 'product':product, 'form':form, 'saved':saved }) response['form'] = template.loader.get_template('form.html').render(context) response['name'] = product.name resp = TemplateResponse(request, '') resp.content = json.dumps(response) return resp #return HttpResponse(json.dumps(response)) if request.method == 'GET': #create form form = forms.ProductForm(instance=product) return TemplateResponse(request, 'edit.html', {"form": form, 'product': product})
def productEdit(request, id): if not request.user.is_active or not request.user.is_superuser: raise Http404 #filter other users try: id = int(id) product = models.Products.objects.get(id=id) except: raise Http404 #bad id or product with this id is not exist form = None if request.method == 'POST': response = {} saved = False form = forms.ProductForm(request.POST, request.FILES, instance=product) #check form if form.is_valid(): form.save() response['status'] = 'ok' saved = True else: response['status'] = 'error' context = RequestContext(request, { 'product': product, 'form': form, 'saved': saved }) response['form'] = template.loader.get_template('form.html').render( context) response['name'] = product.name resp = TemplateResponse(request, '') resp.content = json.dumps(response) return resp #return HttpResponse(json.dumps(response)) if request.method == 'GET': #create form form = forms.ProductForm(instance=product) return TemplateResponse(request, 'edit.html', { "form": form, 'product': product })
def _render_graphiql(self, request, context=None): try: template = Template(render_to_string("graphql/graphiql.html")) except TemplateDoesNotExist: template = Template( open( os.path.join( os.path.dirname(os.path.abspath(strawberry.__file__)), "static/graphiql.html", ), "r", ).read()) response = TemplateResponse(request=request, template=None, context=context) response.content = template.render(RequestContext(request, context)) return response