mirror of
https://github.com/encode/django-rest-framework.git
synced 2025-08-04 20:40:14 +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
|
||||
# lists in HTML forms.
|
||||
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)
|
||||
|
||||
def run_validation(self, data=empty):
|
||||
|
|
|
@ -146,7 +146,7 @@ class TestNestedListSerializer:
|
|||
|
||||
def setup(self):
|
||||
class TestSerializer(serializers.Serializer):
|
||||
integers = serializers.ListSerializer(child=serializers.IntegerField())
|
||||
integers = serializers.ListSerializer(child=serializers.IntegerField(), required=False)
|
||||
booleans = serializers.ListSerializer(child=serializers.BooleanField())
|
||||
|
||||
def create(self, validated_data):
|
||||
|
@ -221,6 +221,22 @@ class TestNestedListSerializer:
|
|||
assert serializer.is_valid()
|
||||
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:
|
||||
def setup(self):
|
||||
|
|
Loading…
Reference in New Issue
Block a user