Значения в Pydantic 2.4 не преобразуются в модель ⇐ Python
-
Гость
Значения в Pydantic 2.4 не преобразуются в модель
Я использую Fastapi, Celery и Pydantic(2.4). Проблема, с которой я сталкиваюсь, заключается в том, что когда я пытаюсь создать экземпляр модели (args = Model(**args)) из словаря, значение setting не отображается. преобразован в экземпляр класса SettingItem; вместо этого оно становится диктатом.
Как сделать настройку экземпляром SettingItem?
при вводе списка импорта из pydantic импорта BaseModel класс SettingItem (BaseModel): Setting_id: ул псевдоним: ул дата: ул. Модель класса (БазоваяМодель): идентификатор: ул настройка: Список[SettingItem] @app.task защита get_data(args: Модель): если isinstance(args,dict) args = Model.model_construct(**args) # эта строка вызывает исключение. Основная причина заключается в том, что args.setting — это словарь, а не экземпляр SettingItem. даты = [x.date для x в args.setting] ... @api.get("/") def run(args:Model) get_data.delay(args.model_dumps()) Я пробовал Model_validate_json() и Model.parse_obj(), ни один из них не работает
Я использую Fastapi, Celery и Pydantic(2.4). Проблема, с которой я сталкиваюсь, заключается в том, что когда я пытаюсь создать экземпляр модели (args = Model(**args)) из словаря, значение setting не отображается. преобразован в экземпляр класса SettingItem; вместо этого оно становится диктатом.
Как сделать настройку экземпляром SettingItem?
при вводе списка импорта из pydantic импорта BaseModel класс SettingItem (BaseModel): Setting_id: ул псевдоним: ул дата: ул. Модель класса (БазоваяМодель): идентификатор: ул настройка: Список[SettingItem] @app.task защита get_data(args: Модель): если isinstance(args,dict) args = Model.model_construct(**args) # эта строка вызывает исключение. Основная причина заключается в том, что args.setting — это словарь, а не экземпляр SettingItem. даты = [x.date для x в args.setting] ... @api.get("/") def run(args:Model) get_data.delay(args.model_dumps()) Я пробовал Model_validate_json() и Model.parse_obj(), ни один из них не работает