Skip to content

Commit cad6c16

Browse files
authored
Fixes serialization of array items in model_to_dict [python] (#9153)
* Adds tests of endpoint with inline and refed model * Regen samples * Samples regenerated
1 parent 22c5935 commit cad6c16

File tree

1 file changed

+13
-7
lines changed

1 file changed

+13
-7
lines changed

.generator/templates/model_utils.mustache

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1211,13 +1211,19 @@ def model_to_dict(model_instance, serialize=True):
12111211
# exist in attribute_map
12121212
attr = model_instance.attribute_map.get(attr, attr)
12131213
if isinstance(value, list):
1214-
if not value or isinstance(value[0], PRIMITIVE_TYPES):
1215-
# empty list or primitive types
1216-
result[attr] = value
1217-
elif isinstance(value[0], ModelSimple):
1218-
result[attr] = [x.value for x in value]
1219-
else:
1220-
result[attr] = [model_to_dict(x, serialize=serialize) for x in value]
1214+
if not value:
1215+
# empty list or None
1216+
result[attr] = value
1217+
else:
1218+
res = []
1219+
for v in value:
1220+
if isinstance(v, PRIMITIVE_TYPES) or v is None:
1221+
res.append(v)
1222+
elif isinstance(v, ModelSimple):
1223+
res.append(v.value)
1224+
else:
1225+
res.append(model_to_dict(v, serialize=serialize))
1226+
result[attr] = res
12211227
elif isinstance(value, dict):
12221228
result[attr] = dict(map(
12231229
lambda item: (item[0],

0 commit comments

Comments
 (0)