allow overriding of fields in subclassed serializers.

This commit is contained in:
Craig de Stigter 2013-08-21 17:29:26 +12:00
parent f84d4951bf
commit a06d6a67a4

View File

@ -110,6 +110,16 @@ def _get_declared_fields(bases, attrs):
if hasattr(base, 'base_fields'):
fields = list(base.base_fields.items()) + fields
# Allow overriding of fields in subclasses, by
# removing the superclass fields from this list.
# (otherwise SortedDict will squash the subclass' field and
# use the superclass field instead.)
seen = {}
for i, (name, field) in reversed(list(enumerate(fields))):
if name in seen:
fields.pop(seen[name])
seen[name] = i
return SortedDict(fields)