mirror of
https://github.com/encode/django-rest-framework.git
synced 2025-08-05 04:50:12 +03:00
Merge 3ae711f3ab
into 9c9525b130
This commit is contained in:
commit
f3cf76f841
|
@ -581,7 +581,7 @@ class ListSerializer(BaseSerializer):
|
||||||
# We override the default field access in order to support
|
# We override the default field access in order to support
|
||||||
# lists in HTML forms.
|
# lists in HTML forms.
|
||||||
if html.is_html_input(dictionary):
|
if html.is_html_input(dictionary):
|
||||||
return html.parse_html_list(dictionary, prefix=self.field_name)
|
return html.parse_html_list(dictionary, prefix=self.field_name) or empty
|
||||||
return dictionary.get(self.field_name, empty)
|
return dictionary.get(self.field_name, empty)
|
||||||
|
|
||||||
def run_validation(self, data=empty):
|
def run_validation(self, data=empty):
|
||||||
|
|
|
@ -146,7 +146,7 @@ class TestNestedListSerializer:
|
||||||
|
|
||||||
def setup(self):
|
def setup(self):
|
||||||
class TestSerializer(serializers.Serializer):
|
class TestSerializer(serializers.Serializer):
|
||||||
integers = serializers.ListSerializer(child=serializers.IntegerField())
|
integers = serializers.ListSerializer(child=serializers.IntegerField(), required=False)
|
||||||
booleans = serializers.ListSerializer(child=serializers.BooleanField())
|
booleans = serializers.ListSerializer(child=serializers.BooleanField())
|
||||||
|
|
||||||
def create(self, validated_data):
|
def create(self, validated_data):
|
||||||
|
@ -221,6 +221,22 @@ class TestNestedListSerializer:
|
||||||
assert serializer.is_valid()
|
assert serializer.is_valid()
|
||||||
assert serializer.validated_data == expected_output
|
assert serializer.validated_data == expected_output
|
||||||
|
|
||||||
|
def test_validate_empty_html_input(self):
|
||||||
|
"""
|
||||||
|
When a field isn't present in HTML input, the field isn't included
|
||||||
|
in the output.
|
||||||
|
"""
|
||||||
|
input_data = MultiValueDict({
|
||||||
|
"booleans[0]": ["true"],
|
||||||
|
"booleans[1]": ["false"]
|
||||||
|
})
|
||||||
|
expected_output = {
|
||||||
|
"booleans": [True, False]
|
||||||
|
}
|
||||||
|
serializer = self.Serializer(data=input_data)
|
||||||
|
assert serializer.is_valid()
|
||||||
|
assert serializer.validated_data == expected_output
|
||||||
|
|
||||||
|
|
||||||
class TestNestedListOfListsSerializer:
|
class TestNestedListOfListsSerializer:
|
||||||
def setup(self):
|
def setup(self):
|
||||||
|
|
Loading…
Reference in New Issue
Block a user