Skip to content

Renamed validated_attrs to validated_data to be more in line with other code #2197

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 8 additions & 8 deletions docs/tutorial/1-serialization.md
Original file line number Diff line number Diff line change
Expand Up @@ -110,21 +110,21 @@ The first thing we need to get started on our Web API is to provide a way of ser
style = serializers.ChoiceField(choices=STYLE_CHOICES,
default='friendly')

def create(self, validated_attrs):
def create(self, validated_data):
"""
Create and return a new `Snippet` instance, given the validated data.
"""
return Snippet.objects.create(**validated_attrs)
return Snippet.objects.create(**validated_data)

def update(self, instance, validated_attrs):
def update(self, instance, validated_data):
"""
Update and return an existing `Snippet` instance, given the validated data.
"""
instance.title = validated_attrs.get('title', instance.title)
instance.code = validated_attrs.get('code', instance.code)
instance.linenos = validated_attrs.get('linenos', instance.linenos)
instance.language = validated_attrs.get('language', instance.language)
instance.style = validated_attrs.get('style', instance.style)
instance.title = validated_data.get('title', instance.title)
instance.code = validated_data.get('code', instance.code)
instance.linenos = validated_data.get('linenos', instance.linenos)
instance.language = validated_data.get('language', instance.language)
instance.style = validated_data.get('style', instance.style)
instance.save()
return instance

Expand Down
20 changes: 10 additions & 10 deletions rest_framework/serializers.py
Original file line number Diff line number Diff line change
Expand Up @@ -608,20 +608,20 @@ class ModelSerializer(Serializer):
})
_related_class = PrimaryKeyRelatedField

def create(self, validated_attrs):
def create(self, validated_data):
"""
We have a bit of extra checking around this in order to provide
descriptive messages when something goes wrong, but this method is
essentially just:

return ExampleModel.objects.create(**validated_attrs)
return ExampleModel.objects.create(**validated_data)

If there are many to many fields present on the instance then they
cannot be set until the model is instantiated, in which case the
implementation is like so:

example_relationship = validated_attrs.pop('example_relationship')
instance = ExampleModel.objects.create(**validated_attrs)
example_relationship = validated_data.pop('example_relationship')
instance = ExampleModel.objects.create(**validated_data)
instance.example_relationship = example_relationship
return instance

Expand All @@ -644,17 +644,17 @@ def create(self, validated_attrs):

ModelClass = self.Meta.model

# Remove many-to-many relationships from validated_attrs.
# Remove many-to-many relationships from validated_data.
# They are not valid arguments to the default `.create()` method,
# as they require that the instance has already been saved.
info = model_meta.get_field_info(ModelClass)
many_to_many = {}
for field_name, relation_info in info.relations.items():
if relation_info.to_many and (field_name in validated_attrs):
many_to_many[field_name] = validated_attrs.pop(field_name)
if relation_info.to_many and (field_name in validated_data):
many_to_many[field_name] = validated_data.pop(field_name)

try:
instance = ModelClass.objects.create(**validated_attrs)
instance = ModelClass.objects.create(**validated_data)
except TypeError as exc:
msg = (
'Got a `TypeError` when calling `%s.objects.create()`. '
Expand All @@ -679,7 +679,7 @@ def create(self, validated_attrs):

return instance

def update(self, instance, validated_attrs):
def update(self, instance, validated_data):
assert not any(
isinstance(field, BaseSerializer) and not field.read_only
for field in self.fields.values()
Expand All @@ -690,7 +690,7 @@ def update(self, instance, validated_attrs):
(self.__class__.__module__, self.__class__.__name__)
)

for attr, value in validated_attrs.items():
for attr, value in validated_data.items():
setattr(instance, attr, value)
instance.save()
return instance
Expand Down