Как проанализировать ObjectId в модели Pydantic?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как проанализировать ObjectId в модели Pydantic?

Сообщение Anonymous »

Я пытаюсь проанализировать записи MongoDB с помощью модели pydantic, но не могу сделать это для ObjectId

Насколько я понял, мне нужно настроить валидатор для ObjectId и попытался расширить класс ObjectId и добавить декоратор validator в мой класс, используя ObjectId. что я сделал следующим образом.

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

from pydantic import BaseModel, validator
from bson.objectid import ObjectId

class ObjectId(ObjectId):
pass
@classmethod
def __get_validators__(cls):
yield cls.validate
@classmethod
def validate(cls, v):
if not isinstance(v, ObjectId):
raise TypeError('ObjectId required')
return str(v)

class User(BaseModel):
who: ObjectId

class User1(BaseModel):
who: ObjectId
@validator('who')
def validate(cls, v):
if not isinstance(v, ObjectId):
raise TypeError('ObjectId required')
return str(v)

data = {"who":ObjectId('123456781234567812345678')}
К сожалению, оба «решения» терпят неудачу следующим образом:

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

>>> test = User(**data)
Traceback (most recent call last):
File "", line 1, in 
File "pydantic/main.py", line 274, in pydantic.main.BaseModel.__init__
pydantic.error_wrappers.ValidationError: 1 validation error for User
id
field required (type=value_error.missing)

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

>>> test = User1(**data)
Traceback (most recent call last):
File "", line 1, in 
File "pydantic/main.py", line 274, in pydantic.main.BaseModel.__init__
pydantic.error_wrappers.ValidationError: 1 validation error for User1
who
ObjectId required (type=type_error)
Мне определенно здесь чего-то не хватает.


Подробнее здесь: https://stackoverflow.com/questions/595 ... ntic-model
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Использование bson.objectid в Pydantic V2
    Anonymous » » в форуме Python
    0 Ответы
    27 Просмотры
    Последнее сообщение Anonymous
  • Использование bson.objectid в Pydantic V2
    Anonymous » » в форуме Python
    0 Ответы
    3 Просмотры
    Последнее сообщение Anonymous
  • Проанализировать файл JSON в модели Pydantic
    Anonymous » » в форуме Python
    0 Ответы
    21 Просмотры
    Последнее сообщение Anonymous
  • Как десериализовать вложенные модели Pydantic из JSON, где вложенные модели хранятся в списке в вычисляемом поле.
    Anonymous » » в форуме Python
    0 Ответы
    115 Просмотры
    Последнее сообщение Anonymous
  • Как проанализировать и сохранить большую модель Pydantic в sqlalchemy
    Anonymous » » в форуме Python
    0 Ответы
    26 Просмотры
    Последнее сообщение Anonymous

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