diff options
| author | GitHub Merge Button | 2011-06-08 12:19:29 -0700 |
|---|---|---|
| committer | GitHub Merge Button | 2011-06-08 12:19:29 -0700 |
| commit | 61e15c041ccedf14319960c5360d87793fed379f (patch) | |
| tree | 12d9946e7ff737284ed4bd861d2c275cd9ea2455 /djangorestframework/resources.py | |
| parent | c7c1408875909ddb58111a82fd0e8250137d0490 (diff) | |
| parent | cf637e886b9b293e44de55b9f829b738fb286365 (diff) | |
| download | django-rest-framework-61e15c041ccedf14319960c5360d87793fed379f.tar.bz2 | |
Merge cf637e886b9b293e44de55b9f829b738fb286365 into c7c1408875909ddb58111a82fd0e8250137d0490
Diffstat (limited to 'djangorestframework/resources.py')
| -rw-r--r-- | djangorestframework/resources.py | 14 |
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 |
