Reputation: 267
Suppose I have three serializers in function and I want to check the validation. If any errors occur in the condition it Response error message at a time
My function:
def employ_create(request):
if request.method == 'POST':
employ_basic_info = data['basic_info']
employ_academic_info = data['academic_info']
employ_address = data['address']
employ_basic_info_serializer = EmployBasicInfoSerializers(data=employ_basic_info)
employ_academic_info_serializer = EmployAcademicInfoSerializers(data=employ_academic_info)
employ_address_serializer = EmployAddressInfoSerializers(data=employ_address)
if employ_basic_info_serializer.is_valid() and employ_academic_info_serializer.is_valid() and employ_address_serializer.is_valid():
employ_basic_info_serializer.save(employ_id=user_obj)
employ_academic_info_serializer.save(employ_id=user_obj)
employ_address_serializer.save(employ_id=user_obj)
return Response(status=rest_framework.status.HTTP_200_OK)
status_errors = {
'employ_basic_info_error':employ_basic_info_serializer.errors,
'employ_academic_info_error':employ_academic_info_serializer.errors,
'employ_address_error':employ_address_serializer.errors,
}
return Response({'stutase':status_errors}, status=rest_framework.status.HTTP_400_BAD_REQUEST)
I want to return employ_basic_info_serializer, employ_academic_info_serializer, employ_address_serializer errors if any errors occur. How can I do it? pls, help me...
Upvotes: 0
Views: 542
Reputation: 88589
Make sure to call the is_valid()
method of each serializer object as,
def employ_create(request):
if request.method == 'POST':
employ_basic_info = data['basic_info']
employ_academic_info = data['academic_info']
employ_address = data['address']
employ_basic_info_serializer = EmployBasicInfoSerializers(
data=employ_basic_info)
employ_academic_info_serializer = EmployAcademicInfoSerializers(
data=employ_academic_info)
employ_address_serializer = EmployAddressInfoSerializers(data=employ_address)
is_valid_employ_basic_info_serializer = employ_basic_info_serializer.is_valid()
is_valid_employ_academic_info_serializer = employ_academic_info_serializer.is_valid()
is_valid_employ_address_serializer = employ_address_serializer.is_valid()
if (
is_valid_employ_academic_info_serializer and
is_valid_employ_basic_info_serializer and
is_valid_employ_address_serializer
):
employ_basic_info_serializer.save(employ_id=user_obj)
employ_academic_info_serializer.save(employ_id=user_obj)
employ_address_serializer.save(employ_id=user_obj)
return Response(status=rest_framework.status.HTTP_200_OK)
status_errors = {
'employ_basic_info_error': employ_basic_info_serializer.errors,
'employ_academic_info_error': employ_academic_info_serializer.errors,
'employ_address_error': employ_address_serializer.errors,
}
return Response(
{'stutase': status_errors},
status=rest_framework.status.HTTP_400_BAD_REQUEST
)
Upvotes: 1