aboutsummaryrefslogtreecommitdiffstats
path: root/djangorestframework/resources.py
diff options
context:
space:
mode:
authorGitHub Merge Button2011-06-08 12:19:29 -0700
committerGitHub Merge Button2011-06-08 12:19:29 -0700
commit61e15c041ccedf14319960c5360d87793fed379f (patch)
tree12d9946e7ff737284ed4bd861d2c275cd9ea2455 /djangorestframework/resources.py
parentc7c1408875909ddb58111a82fd0e8250137d0490 (diff)
parentcf637e886b9b293e44de55b9f829b738fb286365 (diff)
downloaddjango-rest-framework-61e15c041ccedf14319960c5360d87793fed379f.tar.bz2
Merge cf637e886b9b293e44de55b9f829b738fb286365 into c7c1408875909ddb58111a82fd0e8250137d0490
Diffstat (limited to 'djangorestframework/resources.py')
-rw-r--r--djangorestframework/resources.py14
1 files changed, 13 insertions, 1 deletions
diff --git a/djangorestframework/resources.py b/djangorestframework/resources.py
index 36bad914..4b81bf79 100644
--- a/djangorestframework/resources.py
+++ b/djangorestframework/resources.py
@@ -62,6 +62,12 @@ def _model_to_dict(instance, resource=None):
# Method fields
for fname in extra_fields:
+
+ if isinstance(fname, (tuple, list)):
+ fname, fields = fname
+ else:
+ fname, fields = fname, False
+
try:
if hasattr(resource, fname):
# check the resource first, to allow it to override fields
@@ -77,7 +83,13 @@ def _model_to_dict(instance, resource=None):
# TODO: It would be nicer if this didn't recurse here.
# Let's keep _model_to_dict flat, and _object_to_data recursive.
- data[fname] = _object_to_data(obj)
+ if fields:
+ Resource = type('Resource', (object,), {'fields': fields,
+ 'include': (),
+ 'exclude': ()})
+ data[fname] = _object_to_data(obj, Resource())
+ else:
+ data[fname] = _object_to_data(obj)
except NoReverseMatch:
# Ug, bit of a hack for now