diff options
| author | Alen Mujezinovic | 2012-08-13 15:58:23 +0100 |
|---|---|---|
| committer | Alen Mujezinovic | 2012-08-13 15:58:23 +0100 |
| commit | 2f9775c12d172199c2a915062bfba3a13f5cadc4 (patch) | |
| tree | 76eaa8b9e9feba6d34f9485111e9288546d4c757 /djangorestframework/serializer.py | |
| parent | e3d7c361051bde7b6d712ca975b4fe14f6449c15 (diff) | |
| download | django-rest-framework-2f9775c12d172199c2a915062bfba3a13f5cadc4.tar.bz2 | |
Don't ever return the normal serializer again.
Diffstat (limited to 'djangorestframework/serializer.py')
| -rw-r--r-- | djangorestframework/serializer.py | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/djangorestframework/serializer.py b/djangorestframework/serializer.py index d000ad96..f2f89f6c 100644 --- a/djangorestframework/serializer.py +++ b/djangorestframework/serializer.py @@ -135,10 +135,12 @@ class Serializer(object): # If an element in `fields` is a 2-tuple of (str, tuple) # then the second element of the tuple is the fields to # set on the related serializer + + class OnTheFlySerializer(self.__class__): + fields = info + parent = getattr(self, 'parent') or self + if isinstance(info, (list, tuple)): - class OnTheFlySerializer(self.__class__): - fields = info - parent = getattr(self, 'parent') or self return OnTheFlySerializer # If an element in `fields` is a 2-tuple of (str, Serializer) @@ -156,8 +158,9 @@ class Serializer(object): elif isinstance(info, str) and info in _serializers: return _serializers[info] - # Otherwise use `related_serializer` or fall back to `Serializer` - return getattr(self, 'related_serializer') or Serializer + # Otherwise use `related_serializer` or fall back to + # `OnTheFlySerializer` preserve custom serialization methods. + return getattr(self, 'related_serializer') or OnTheFlySerializer def serialize_key(self, key): """ |
