Как сериализовать только валидные объекты в 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
>>> []

Мой вопрос заключается в том, как я могу иметь сериализатор, чтобы сериализовались только валидные объекты, а невалидные отбрасывались?

Спасибо

Вернуться на верх