Ошибка валидации 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"")"
            ]
         }
      }
   },
]

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