Я хочу создать декоратор, который позволит мне возвращать необработанное или «строковое» представление представления, если параметр GET «raw» равен «1». Концепция работает, но я застрял на том, как передать контекст моему рендереру. Вот что у меня есть:
from django.shortcuts import render_to_response
from django.http import HttpResponse
from django.template.loader import render_to_string
def raw_response(template):
def wrap(view):
def response(request,*args,**kwargs):
if request.method == "GET":
try:
if request.GET['raw'] == "1":
render = HttpResponse(render_to_string(template,{}),content_type="text/plain")
return render
except Exception:
render = render_to_response(template,{})
return render
return response
return wrap
В настоящее время {} присутствует в качестве заполнителя. В конечном счете, я хотел бы быть в состоянии принять такой диктат:
@raw_response('my_template_name.html')
def view_name(request):
render({"x":42})
Любая помощь приветствуется.