Как динамически изменять конфигурацию alias_generator моделей Pydantic во время выполнения?Python

Программы на Python
Ответить
Anonymous
 Как динамически изменять конфигурацию alias_generator моделей Pydantic во время выполнения?

Сообщение Anonymous »

Я пытаюсь изменить свойства alias_generator иallow_population_by_field_name класса Config модели Pydantic во время выполнения. Я ожидаю, что он будет каскадно передаваться от родительской модели к дочерним.

Код: Выделить всё

class ParentModel(BaseModel):
class Config:
alias_generator = to_camel
allow_population_by_field_name = True

class ChildModel(ParentModel):
first_name: str

class ChildModel2(ParentModel):
data: ChildModel
Я хочу изменить следующее во время выполнения.

Код: Выделить всё

alias_generator = to_pascal
Как я смогу это сделать?
Я пробовал что-то вроде этого:

Код: Выделить всё

class ParentModel(BaseModel):
def __init__(self, is_camel = True, **data):
self.Config.alias_generator = to_camel if is_camel else to_pascal

class Config:
allow_population_by_field_name = True

class ChildModel(ParentModel):
first_name: str

class ChildModel2(ParentModel):
def __init__(self, is_camel, **data):
super.__init__(is_camel, **data)

data: ChildModel

test = ChildModel2(is_camel=False, data=ChildModel(first_name="test"))
Итак, цель состоит в том, чтобы преобразовать модели pydantic в json либо в случае верблюда, либо в случае Паскаля, либо в случае змеи, когда быстрый API возвращает ответ.

Подробнее здесь: https://stackoverflow.com/questions/742 ... els-during
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»