I need to set custom response headers in Django project.
Here is code from facts/urls.py:
d = {
'app_name': 'facts',
'model_name': 'Fact'
}
urlpatterns = patterns('',
(r'^$', 'facts.main', d),
)
This approach shows data from model, but I'am not sure if there is a way to set custom headers here?
Also I tried another approach - I created facts/views.py with following function:
def fact(request):
response = render_to_response('facts.html',
{'app_name': 'facts',
'model_name': 'Fact'},
context_instance=RequestContext(request))
response['TestCustomHeader'] = 'test'
return response
and changed code in urls.py:
(r'^$', facts.views.fact),
This approach sets custom headers but doesn't show data from model.
Any help?
HttpResponse (source code) provides an inbound HTTP request to a Django web application with a text response. This class is most frequently used as a return object from a Django view.
In an HttpRequest object, the GET and POST attributes are instances of django. http. QueryDict , a dictionary-like class customized to deal with multiple values for the same key. This is necessary because some HTML form elements, notably <select multiple> , pass multiple values for the same key.
getKey() + " ,Value : " + entry. getValue()); } //get header by 'key' String server = conn. getHeaderField("Server");
Middleware is a framework of hooks into Django's request/response processing. It's a light, low-level “plugin” system for globally altering Django's input or output. Each middleware component is responsible for doing some specific function.
When you pass the dict to views.main
in urls.py
, the function def main()
deals with {"model_name": "Fact"}
. Probably there's some code like:
model = get_model(kwargs["model_name"])
return model.objects.all()
When you pass "model_name" to render_to_response
, the dict is passed to the template as context. If you include in your template {{model_name}}
, the page should render Fact
.
Setting custom headings in Class Based views, inside the Class define a function like:
def get(self, request):
response = HttpResponse()
response["TestCustomHeader"] = "test"
return response
Or in a function view:
def main(request):
response = HttpResponse()
response["TestCustomHeader"] = "test"
[ Some code to fetch model data ]
return response
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With