mirror of
https://github.com/encode/django-rest-framework.git
synced 2025-08-04 20:40:14 +03:00
get_component should work with custom mapping types
This commit is contained in:
parent
b519018125
commit
4762455af3
|
@ -79,6 +79,12 @@ except ImportError:
|
||||||
from collections import UserDict
|
from collections import UserDict
|
||||||
from collections import MutableMapping as DictMixin
|
from collections import MutableMapping as DictMixin
|
||||||
|
|
||||||
|
# Mapping is new in python 2.6
|
||||||
|
try:
|
||||||
|
from collections import Mapping
|
||||||
|
except ImportError:
|
||||||
|
Mapping = dict
|
||||||
|
|
||||||
# Try to import PIL in either of the two ways it can end up installed.
|
# Try to import PIL in either of the two ways it can end up installed.
|
||||||
try:
|
try:
|
||||||
from PIL import Image
|
from PIL import Image
|
||||||
|
|
|
@ -24,7 +24,7 @@ from django.utils.datastructures import SortedDict
|
||||||
from rest_framework import ISO_8601
|
from rest_framework import ISO_8601
|
||||||
from rest_framework.compat import (
|
from rest_framework.compat import (
|
||||||
timezone, parse_date, parse_datetime, parse_time, BytesIO, six, smart_text,
|
timezone, parse_date, parse_datetime, parse_time, BytesIO, six, smart_text,
|
||||||
force_text, is_non_str_iterable
|
force_text, is_non_str_iterable, Mapping
|
||||||
)
|
)
|
||||||
from rest_framework.settings import api_settings
|
from rest_framework.settings import api_settings
|
||||||
|
|
||||||
|
@ -50,7 +50,7 @@ def get_component(obj, attr_name):
|
||||||
Given an object, and an attribute name,
|
Given an object, and an attribute name,
|
||||||
return that attribute on the object.
|
return that attribute on the object.
|
||||||
"""
|
"""
|
||||||
if isinstance(obj, dict):
|
if isinstance(obj, Mapping):
|
||||||
val = obj.get(attr_name)
|
val = obj.get(attr_name)
|
||||||
else:
|
else:
|
||||||
val = getattr(obj, attr_name)
|
val = getattr(obj, attr_name)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user