Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Determine the requested content type?

Tags:

I'd like to write a Django view which serves out variant content based on what's requested. For example, for "text/xml", serve XML, for "text/json", serve JSON, etc. Is there a way to determine this from a request object? Something like this would be awesome:

def process(request):     if request.type == "text/xml":         pass     elif request.type == "text/json":         pass     else:         pass 

Is there a property on HttpRequest for this?

like image 439
Naftuli Kay Avatar asked Sep 18 '11 06:09

Naftuli Kay


1 Answers

'Content-Type' header indicates media type send in the HTTP request. This is used for requests that have a content (POST, PUT).

'Content-Type' should not be used to indicate preferred response format, 'Accept' header serves this purpose. To access it in Django use: HttpRequest.META.get('HTTP_ACCEPT')

See more detailed description of these headers

like image 104
Jan Wrobel Avatar answered Nov 07 '22 20:11

Jan Wrobel