File tree Expand file tree Collapse file tree
modules/openapi-generator/src/main
java/org/openapitools/codegen/languages Expand file tree Collapse file tree Original file line number Diff line number Diff line change 2525import org .openapitools .codegen .meta .GeneratorMetadata ;
2626import org .openapitools .codegen .meta .Stability ;
2727import org .openapitools .codegen .meta .features .*;
28+ import org .openapitools .codegen .model .ModelMap ;
29+ import org .openapitools .codegen .model .ModelsMap ;
2830import org .openapitools .codegen .utils .ModelUtils ;
2931import org .openapitools .codegen .utils .ProcessUtils ;
3032import org .slf4j .Logger ;
@@ -434,6 +436,18 @@ public String modelTestFileFolder() {
434436 return outputFolder + File .separatorChar + testFolder ;
435437 }
436438
439+ @ Override
440+ public ModelsMap postProcessModels (ModelsMap objs ) {
441+ // Process models to detect PATCH models (models starting with 'Patched')
442+ for (ModelMap mo : objs .getModels ()) {
443+ CodegenModel cm = mo .getModel ();
444+ if (cm .getClassname ().startsWith ("Patched" )) {
445+ cm .vendorExtensions .put ("isPatchedModel" , true );
446+ }
447+ }
448+ return super .postProcessModels (objs );
449+ }
450+
437451 public String packagePath () {
438452 return packageName .replace ('.' , File .separatorChar );
439453 }
Original file line number Diff line number Diff line change @@ -164,11 +164,22 @@ class {{classname}}({{#parent}}{{{.}}}{{/parent}}{{^parent}}BaseModel{{/parent}}
164164 { {/isAdditionalPropertiesTrue} }
165165 ])
166166
167+ { {#classname} }
168+ { {#isPatchedModel} }
169+ _dict = self.model_dump(
170+ by_alias=True,
171+ exclude=excluded_fields,
172+ exclude_unset=True, # For PATCH models, exclude unset fields to avoid sending default values
173+ )
174+ { {/isPatchedModel} }
175+ { {^isPatchedModel} }
167176 _dict = self.model_dump(
168177 by_alias=True,
169178 exclude=excluded_fields,
170179 exclude_none=True,
171180 )
181+ { {/isPatchedModel} }
182+ { {/classname} }
172183 { {#allVars} }
173184 { {#isContainer} }
174185 { {#isArray} }
You can’t perform that action at this time.
0 commit comments