API: Fix using invoice address attributes in "include"

This commit is contained in:
Raphael Michel
2022-12-16 15:23:20 +01:00
parent 8dd83e5a35
commit 6a4b792501
2 changed files with 17 additions and 4 deletions

View File

@@ -636,7 +636,7 @@ class OrderSerializer(I18nAwareModelSerializer):
for fname, field in list(self.fields.items()):
if fname in includes:
continue
elif hasattr(field, 'child'):
elif hasattr(field, 'child'): # Nested list serializers
found_any = False
for childfname, childfield in list(field.child.fields.items()):
if f'{fname}.{childfname}' not in includes:
@@ -645,6 +645,15 @@ class OrderSerializer(I18nAwareModelSerializer):
found_any = True
if not found_any:
self.fields.pop(fname)
elif isinstance(field, serializers.Serializer): # Nested serializers
found_any = False
for childfname, childfield in list(field.fields.items()):
if f'{fname}.{childfname}' not in includes:
field.fields.pop(childfname)
else:
found_any = True
if not found_any:
self.fields.pop(fname)
else:
self.fields.pop(fname)