Как сериализовать только валидные объекты в Django Rest Framework с many=True?
I am asking this question after making a search on the Internet and found nothing of use. (Except for this question, which was not answered)
У меня есть следующий сериализатор
class StudentSerializer(Serializer):
name = CharField()
age= IntegerField(min_value=0)
last_name = CharField(required=False)
def validate(self, attrs):
return attrs
Следующие данные, подлежащие сериализации:
data = [
{
"name":"Burakhan",
"age":27,
"last_name":"Aksoy"
},
{
"name":"Mehmet",
"age":27,
"last_name":"Randomname"
},
{
"name":"Cevdet",
"age":28
},
{
"name":"Ahmet",
"age":-2, # This is invalid
"last_name":"Yilmaz"
}
]
Когда я хочу сериализовать это следующим образом, serialized.validated_data возвращает пустой List, хотя только один объект не является действительным.
serialized = StudentSerializer(data=data, many=True)
serialized.is_valid()
>>> False
serialized.errors
>>>[{}, {}, {}, {'age': [ErrorDetail(string='Ensure this value is greater than or equal to 0.', code='min_value')]}
serialized.validated_data
>>> []
Мой вопрос заключается в том, как я могу иметь сериализатор, чтобы сериализовались только валидные объекты, а невалидные отбрасывались?
Спасибо