Skip to content

Commit 4144afb

Browse files
committed
pydantic alias support added.
1 parent 61c53dc commit 4144afb

File tree

1 file changed

+9
-9
lines changed

1 file changed

+9
-9
lines changed

pydantic_xml/serializers.py

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -217,7 +217,7 @@ def __init__(
217217
self, model: Type['pxml.BaseXmlModel'], model_field: pd.fields.ModelField, ctx: Serializer.Context,
218218
):
219219
ns_attrs = model.__xml_ns_attrs__
220-
name = ctx.entity_name or model_field.name
220+
name = ctx.entity_name or model_field.alias
221221
ns = ctx.entity_ns or (ctx.parent_ns if ns_attrs else None)
222222
nsmap = ctx.parent_nsmap
223223

@@ -239,7 +239,7 @@ def deserialize(self, element: etree.Element) -> Optional[str]:
239239

240240
class ElementSerializer(Serializer):
241241
def __init__(self, model_field: pd.fields.ModelField, ctx: Serializer.Context):
242-
name = ctx.entity_name or model_field.name
242+
name = ctx.entity_name or model_field.alias
243243
ns = ctx.entity_ns or ctx.parent_ns
244244
nsmap = merge_nsmaps(ctx.entity_nsmap, ctx.parent_nsmap)
245245
self.element_name = QName.from_alias(tag=name, ns=ns, nsmap=nsmap).uri
@@ -302,7 +302,7 @@ def __init__(
302302
self.is_root = is_root
303303
self.element_name = QName.from_alias(tag=name, ns=ns, nsmap=nsmap).uri
304304
self.field_serializers = {
305-
field_name: self.build_field_serializer(model, model_subfield, ctx)
305+
model_subfield.alias: self.build_field_serializer(model, model_subfield, ctx)
306306
for field_name, model_subfield in model.__fields__.items()
307307
}
308308

@@ -339,7 +339,7 @@ def __init__(
339339
model: Type['pxml.BaseXmlModel'],
340340
ctx: Serializer.Context,
341341
):
342-
field_name = model_field.name if model_field else None
342+
field_name = model_field.alias if model_field else None
343343
name = ctx.entity_name or model.__xml_tag__ or field_name or model.__name__
344344
ns = ctx.entity_ns or model.__xml_ns__
345345
nsmap = merge_nsmaps(ctx.entity_nsmap, model.__xml_nsmap__, ctx.parent_nsmap)
@@ -432,7 +432,7 @@ class BaseSerializer(Serializer, abc.ABC):
432432
def __init__(
433433
self, model: Type['pxml.BaseXmlModel'], model_field: pd.fields.ModelField, ctx: Serializer.Context,
434434
):
435-
name = ctx.entity_name or model_field.name
435+
name = ctx.entity_name or model_field.alias
436436

437437
self.parent_ns = ns = ctx.entity_ns or ctx.parent_ns
438438
self.parent_nsmap = nsmap = merge_nsmaps(ctx.entity_nsmap, ctx.parent_nsmap)
@@ -550,14 +550,14 @@ def __init__(
550550
):
551551
assert model_field.sub_fields is not None, "unexpected model field"
552552

553-
name = ctx.entity_name or model_field.name
553+
name = ctx.entity_name or model_field.alias
554554
ns = ctx.entity_ns or ctx.parent_ns
555555
nsmap = merge_nsmaps(ctx.entity_nsmap, ctx.parent_nsmap)
556556

557557
self.element_name = QName.from_alias(tag=name, ns=ns, nsmap=nsmap).uri
558558

559559
item_field = deepcopy(model_field.sub_fields[0])
560-
item_field.name = model_field.name
560+
item_field.name = model_field.alias
561561
self.serializer = self.build_field_serializer(
562562
model,
563563
item_field,
@@ -639,7 +639,7 @@ def __init__(
639639
):
640640
assert model_field.sub_fields is not None, "unexpected model field"
641641

642-
name = ctx.entity_name or model_field.name
642+
name = ctx.entity_name or model_field.alias
643643
ns = ctx.entity_ns or ctx.parent_ns
644644
nsmap = merge_nsmaps(ctx.entity_nsmap, ctx.parent_nsmap)
645645

@@ -648,7 +648,7 @@ def __init__(
648648
self.serializers = []
649649
for sub_field in model_field.sub_fields:
650650
sub_field = deepcopy(sub_field)
651-
sub_field.name = model_field.name
651+
sub_field.name = model_field.alias
652652

653653
self.serializers.append(
654654
self.build_field_serializer(

0 commit comments

Comments
 (0)