mirror of
https://github.com/encode/django-rest-framework.git
synced 2025-08-03 12:00:12 +03:00
allow overriding of fields in subclassed serializers.
This commit is contained in:
parent
f84d4951bf
commit
a06d6a67a4
|
@ -110,6 +110,16 @@ def _get_declared_fields(bases, attrs):
|
||||||
if hasattr(base, 'base_fields'):
|
if hasattr(base, 'base_fields'):
|
||||||
fields = list(base.base_fields.items()) + 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)
|
return SortedDict(fields)
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user