Skip to content

Commit 84457c9

Browse files
committed
Fixed case where a missing meta_field value would error
1 parent 3b93077 commit 84457c9

File tree

2 files changed

+9
-6
lines changed

2 files changed

+9
-6
lines changed

rest_framework_json_api/renderers.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -325,7 +325,7 @@ def extract_meta(serializer, resource):
325325
meta = getattr(serializer.child, 'Meta', None)
326326
else:
327327
meta = getattr(serializer, 'Meta', None)
328-
meta_fields = getattr(meta, 'meta_fields', {})
328+
meta_fields = getattr(meta, 'meta_fields', [])
329329
data = OrderedDict()
330330
for field_name in meta_fields:
331331
data.update({

rest_framework_json_api/serializers.py

+8-5
Original file line numberDiff line numberDiff line change
@@ -150,10 +150,13 @@ def get_field_names(self, declared_fields, info):
150150
"""
151151
meta_fields = getattr(self.Meta, 'meta_fields', None)
152152

153-
declared = OrderedDict()
154-
for field_name in declared_fields.keys():
155-
field = declared_fields[field_name]
156-
if field_name not in meta_fields:
157-
declared[field_name] = field
153+
if meta_fields:
154+
declared = OrderedDict()
155+
for field_name in set(declared_fields.keys()):
156+
field = declared_fields[field_name]
157+
if field_name not in meta_fields:
158+
declared[field_name] = field
159+
else:
160+
declared = declared_fields
158161
return super(ModelSerializer, self).get_field_names(declared, info)
159162

0 commit comments

Comments
 (0)