mirror of
https://github.com/encode/django-rest-framework.git
synced 2025-02-17 03:51:03 +03:00
Merge pull request #452 from fabianbuechler/patch-1
Renderer negotiation: media_type specificty evaluation weak
This commit is contained in:
commit
c72a20c459
|
@ -2,6 +2,7 @@ from django.http import Http404
|
||||||
from rest_framework import exceptions
|
from rest_framework import exceptions
|
||||||
from rest_framework.settings import api_settings
|
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 order_by_precedence, media_type_matches
|
||||||
|
from rest_framework.utils.mediatypes import _MediaType
|
||||||
|
|
||||||
|
|
||||||
class BaseContentNegotiation(object):
|
class BaseContentNegotiation(object):
|
||||||
|
@ -48,7 +49,8 @@ class DefaultContentNegotiation(BaseContentNegotiation):
|
||||||
for media_type in media_type_set:
|
for media_type in media_type_set:
|
||||||
if media_type_matches(renderer.media_type, media_type):
|
if media_type_matches(renderer.media_type, media_type):
|
||||||
# Return the most specific media type as accepted.
|
# 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 '*/*'
|
# Eg client requests '*/*'
|
||||||
# Accepted media type is 'application/json'
|
# Accepted media type is 'application/json'
|
||||||
return renderer, renderer.media_type
|
return renderer, renderer.media_type
|
||||||
|
|
Loading…
Reference in New Issue
Block a user