mirror of
https://github.com/encode/django-rest-framework.git
synced 2025-08-02 11:30: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'):
|
||||
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)
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user