Skip to content

Commit 02b3f3a

Browse files
Add from dict method for array of dicts
1 parent 4f2ccf5 commit 02b3f3a

1 file changed

Lines changed: 12 additions & 4 deletions

File tree

modules/openapi-generator/src/main/resources/python-pydantic-v1/model_generic.mustache

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -291,18 +291,26 @@ class {{classname}}({{#parent}}{{{.}}}{{/parent}}{{^parent}}BaseModel{{/parent}}
291291
{{#allVars}}
292292
{{#isContainer}}
293293
{{#isArray}}
294-
{{#items.isArray}}
294+
{{#items.isContainer}}
295295
{{#items.items.isPrimitiveType}}
296296
"{{{name}}}": obj.get("{{{baseName}}}"){{^-last}},{{/-last}}
297297
{{/items.items.isPrimitiveType}}
298298
{{^items.items.isPrimitiveType}}
299+
{{#items.isArray}}
299300
"{{{name}}}": [
300301
[{{{items.items.dataType}}}.from_dict(_inner_item) for _inner_item in _item]
301302
for _item in obj.get("{{{baseName}}}")
302303
] if obj.get("{{{baseName}}}") is not None else None{{^-last}},{{/-last}}
303-
{{/items.items.isPrimitiveType}}
304304
{{/items.isArray}}
305-
{{^items.isArray}}
305+
{{#items.isMap}}
306+
"{{{name}}}": [
307+
{_inner_key: {{{items.items.dataType}}}.from_dict(_inner_value) for _inner_key, _inner_value in _item.items()}
308+
for _item in obj.get("{{{baseName}}}")
309+
] if obj.get("{{{baseName}}}") is not None else None{{^-last}},{{/-last}}
310+
{{/items.isMap}}
311+
{{/items.items.isPrimitiveType}}
312+
{{/items.isContainer}}
313+
{{^items.isContainer}}
306314
{{^items.isPrimitiveType}}
307315
{{#items.isEnumOrRef}}
308316
"{{{name}}}": obj.get("{{{baseName}}}"){{^-last}},{{/-last}}
@@ -314,7 +322,7 @@ class {{classname}}({{#parent}}{{{.}}}{{/parent}}{{^parent}}BaseModel{{/parent}}
314322
{{#items.isPrimitiveType}}
315323
"{{{name}}}": obj.get("{{{baseName}}}"){{^-last}},{{/-last}}
316324
{{/items.isPrimitiveType}}
317-
{{/items.isArray}}
325+
{{/items.isContainer}}
318326
{{/isArray}}
319327
{{#isMap}}
320328
{{^items.isPrimitiveType}}

0 commit comments

Comments
 (0)