diff options
| author | Tom Christie | 2012-11-29 15:02:32 -0800 |
|---|---|---|
| committer | Tom Christie | 2012-11-29 15:02:32 -0800 |
| commit | c72a20c459ca748b27487b792265ae8796dedb1a (patch) | |
| tree | 3a9f26a935f55914eaa306f825a53d522dff14a4 | |
| parent | 968f4a5ca40d8e85ff6a77e9263e0563285abe8f (diff) | |
| parent | 731443b71eaa94a624952bb4ea5b142ac884cccb (diff) | |
| download | django-rest-framework-c72a20c459ca748b27487b792265ae8796dedb1a.tar.bz2 | |
Merge pull request #452 from fabianbuechler/patch-1
Renderer negotiation: media_type specificty evaluation weak
| -rw-r--r-- | rest_framework/negotiation.py | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/rest_framework/negotiation.py b/rest_framework/negotiation.py index dae38477..ee2800a6 100644 --- a/rest_framework/negotiation.py +++ b/rest_framework/negotiation.py @@ -2,6 +2,7 @@ from django.http import Http404 from rest_framework import exceptions from rest_framework.settings import api_settings from rest_framework.utils.mediatypes import order_by_precedence, media_type_matches +from rest_framework.utils.mediatypes import _MediaType class BaseContentNegotiation(object): @@ -48,7 +49,8 @@ class DefaultContentNegotiation(BaseContentNegotiation): for media_type in media_type_set: if media_type_matches(renderer.media_type, media_type): # Return the most specific media type as accepted. - if len(renderer.media_type) > len(media_type): + if (_MediaType(renderer.media_type).precedence > + _MediaType(media_type).precedence): # Eg client requests '*/*' # Accepted media type is 'application/json' return renderer, renderer.media_type |
