diff options
| author | Alen Mujezinovic | 2011-06-08 15:45:04 +0100 | 
|---|---|---|
| committer | Alen Mujezinovic | 2011-06-08 15:45:04 +0100 | 
| commit | 253663aee8d0fe04e004daf2d77e9c33feb27b3b (patch) | |
| tree | 377a2e408a9dbf03ab85e6659ab2ec580258eefa | |
| parent | c7c1408875909ddb58111a82fd0e8250137d0490 (diff) | |
| download | django-rest-framework-253663aee8d0fe04e004daf2d77e9c33feb27b3b.tar.bz2 | |
Added possibility to specify what attributes of ForeignKeys and OneToOne fields to include via nested tuples
| -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 | 
