Django: Add response header when using render or r

2020-05-21 09:39发布

问题:

How do I add a response header to a Django response? I have:

response = HttpResponse()
response['Cache-Control'] = 'no-cache'

return render(request, "template.html", {}) 

# Alternately using render_to_response
# return render_to_response("template.html", {})

回答1:

Assign the result of render to a variable, set the header, then return the response.

response = render(request, "template.html", {})
response['Cache-Control'] = 'no-cache'
return response

Most of the time, it is simpler to user render than render_to_response. However, if you are using render_to_response, the same approach will work:

response = render_to_response("template.html", {})
response['Cache-Control'] = 'no-cache'
return response