Skip to content

Commit f788111

Browse files
committed
Let attribute default to field name
1 parent 43b0bc7 commit f788111

2 files changed

Lines changed: 5 additions & 4 deletions

File tree

src/marshmallow/fields.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -378,6 +378,7 @@ def _bind_to_schema(self, field_name, schema):
378378
self.parent = self.parent or schema
379379
self.name = self.name or field_name
380380
self.data_key = self.data_key if self.data_key is not None else field_name
381+
self.attribute = self.attribute if self.attribute is not None else field_name
381382
self.root = self.root or (
382383
self.parent.root if isinstance(self.parent, FieldABC) else self.parent
383384
)

src/marshmallow/schema.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -663,7 +663,7 @@ def _deserialize(
663663
index=index,
664664
)
665665
if value is not missing:
666-
key = field_obj.attribute or attr_name
666+
key = field_obj.attribute
667667
set_value(ret_d, key, value)
668668
if unknown != EXCLUDE:
669669
fields = {field_obj.data_key for field_obj in self.load_fields.values()}
@@ -991,7 +991,7 @@ def _init_fields(self) -> None:
991991
"Check the following field names and "
992992
"data_key arguments: {}".format(list(data_keys_duplicates))
993993
)
994-
load_attributes = [obj.attribute or name for name, obj in load_fields.items()]
994+
load_attributes = [obj.attribute for obj in load_fields.values()]
995995
if len(load_attributes) != len(set(load_attributes)):
996996
attributes_duplicates = {
997997
x for x in load_attributes if load_attributes.count(x) > 1
@@ -1105,7 +1105,7 @@ def _invoke_field_validators(self, *, error_store: ErrorStore, data, many: bool)
11051105
if many:
11061106
for idx, item in enumerate(data):
11071107
try:
1108-
value = item[field_obj.attribute or field_name]
1108+
value = item[field_obj.attribute]
11091109
except KeyError:
11101110
pass
11111111
else:
@@ -1120,7 +1120,7 @@ def _invoke_field_validators(self, *, error_store: ErrorStore, data, many: bool)
11201120
data[idx].pop(field_name, None)
11211121
else:
11221122
try:
1123-
value = data[field_obj.attribute or field_name]
1123+
value = data[field_obj.attribute]
11241124
except KeyError:
11251125
pass
11261126
else:

0 commit comments

Comments
 (0)