Ошибка валидации Django при использовании вложенного сериализатора
Внутри метода run_validation
я вызываю другой сериализатор is_valid(raise_exception=True)
. Если входные данные не соответствуют действительности для другого сериализатора, то программа завершается со следующей ошибкой.
super().__init__(*args, **kwargs) ValueError: need more than 0 values to unpack
Вот код:
def run_validation(self, data):
modules = data.getlist("modules", []) if "modules" in data else []
if len(modules) > 0:
sm_ser = SMSerializer(data=modules, many=True)
sm_ser.is_valid(raise_exception=True)
return super(CSSerializer, self).run_validation(data)
Вопрос 1. Можно ли в этом методе вызвать валидацию для другого объекта?
Вопрос 2. Как сделать так, чтобы run_validation
поднимал ошибки, которые исходят от другого сериализатора.
sm_ser.errors
- это список ошибок, которые не проходят.
[
{
"coordinates":{
"26":{
"1":[
"ErrorDetail(string=""Ensure that there are no more than 25 digits in total.",
"code=""max_digits"")"
]
},
"27":{
"1":[
"ErrorDetail(string=""Ensure that there are no more than 14 decimal places.",
"code=""max_decimal_places"")"
]
},
},
"c_coordinates":{
"50":{
"1":[
"ErrorDetail(string=""Ensure that there are no more than 14 decimal places.",
"code=""max_decimal_places"")"
]
}
}
},
]