Когда я пытаюсь создать несколько экземпляров в одном запросе, отображается ошибка, если один экземпляр неверен в пакете. Но как я могу написать свой метод создания для вставки правильных экземпляров в пакет. Это означает, что только правильные экземпляры будут вставлены в БД, а также покажут сообщение об ошибках для неправильных экземпляров.
[
{
"name": "oil",
"unit_price": 200
},
{
"name": "meat",
"unit_type": "raw",
"unit_price": 1000
}
"name": "salt",
"unit_type": "raw",
"unit_price": -100
}
]
Я хочу вставить первые два экземпляра, которые будут вставлены в БД, а для последнего он выдаст ошибку, подобную этой.
"errors":
[
{
"unit_price": [
"Enter positive number."
]
}
]
Вот мой сериализатор
class ProductSerializer(serializers.ModelSerializer):
def validate_unit_price(self, value):
if (value) > 0:
return value
raise serializers.ValidationError("Enter positive number.")
class Meta:
model = Product
fields = [ 'name', 'unit_type', 'unit_price']
Также моя функция просмотра
@api_view(['POST'])
def store(request):
serializer = ProductSerializer(data = request.data,many=True)
if serializer.is_valid():
serializer.save()
return Response({'response_code': '500', 'response': status.HTTP_500_INTERNAL_SERVER_ERROR, 'message': 'Something went wrong', 'data': request.data, 'errors': serializer.errors})