使用HttpResponse
返回render_to_response
对象时,您可以提供一个模板,它将使用该模板并填写您在模板中设置的所有{{ variables }}
。
如果我想手动构建我的HttpResponse
对象,是否仍然可以在我的模板目录中使用我的一个模板?
答案 0 :(得分:4)
使用render_to_string
,您将获得渲染字符串。您可以将返回的字符串传递给HttpResponse
。
from django.template.loader import render_to_string
...
rendered = render_to_string('my_template.html', {'foo': 'bar'})
response = HttpResponse(rendered)
答案 1 :(得分:0)
是的 - 你可以使用Django的template loader将模板作为Template
对象加载,然后render it加载到一个字符串,然后传递给HttpResponse
}:
from django.template import Template, Context
from django.template.loader import get_template
def my_view(request):
temp = get_template('/path/to/template.html')
result = temp.render(Context({'context': 'here'})
return HttpResponse(result)
修改的
刚刚注意到@fattru的上述答案 - 这可能是一种更好更短的方式!