Pydantic ValidationError для модели наследования (вложенной)

Существует структура моделей с наследованием

class CampaignAdditionalData(BaseModel):
    campaigns: List[CampaignData]
    stages: List[CreativeUsageStage]
    language_mode: ReplicationLanguageMode
    creative_rotation_type: CreativeRotationType

class CampaignData(BaseModel):
    title: NonEmptyString
    geo_segment: NonEmptyString
    ac_type: ACType
    conversion: Conversion
    asset_type: GoogleCampaignAssetType
    date: datetime.date
    name: NonEmptyString
    budget: PositiveDecimal
    cpa: PositiveDecimal

Вот как код вызывает обработку входящих параметров

from pydantic import ValidationError, parse_obj_as

        def check_campaigns_data(request: HttpRequest) -> JsonResponse:
            data = json.loads(request.body.decode('utf-8'))
            try:
                campaign_data = parse_obj_as(CampaignAdditionalData, data)
            except ValidationError as e:
                response = {'status': 'validation_error', 'errors': e.errors()}
                return JsonResponse(response)
            .....
            ....

Если возникает исключение, например, в поле geo_segment в поле CampaignData команда
print(response) внутри блока except return

    {
'status': 'validation_error', 
'errors': [{'loc': ('__root__', 'campaigns', 0, '__root__'), 
'msg': 'No such geo segment found', 
'type': 'assertion_error'}]
}

Из этого видно, что pydantic ValidationError возвращает поле campaigns общей CampaignAdditionalData модели как loc значение

('__root__', 'campaigns', 0, '__root__')

Есть ли способ получить имя поля geo_segment в сообщении об ошибке, т.е. спуститься еще ниже в иерархии полей?

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