Как передать объект ORM в field_validator pydantic?Python

Программы на Python
Anonymous
Как передать объект ORM в field_validator pydantic?

Сообщение Anonymous »

Работая над rest-фреймворком, у меня возник вопрос...

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

posts = Post.objects.all().alive()
передается через систему для анализа с помощью List[PostSchema]. Как я могу получить доступ к объекту, переданному ORM, как указано ниже (подойдет любое конкретное решение или обходной путь):

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

# Schema  is slightly extended version of BaseModel
class PostSchema(Schema, ):
id: int
created_at: datetime
updated_at: datetime
soft_deleted_at: datetime | None = None
id: int
title: str
slug: str
body: str
tags: list[TagsSchema]

comments: SimpleCommentSchema

@field_validator("comments", mode="before")
def get_comments(cls, v, info, obj):  # obj is the each-object passed via List[PostSchema]
comments = PolymorphicComments.objects.filter(
parent_id=obj.id,
parent_type=ContentType.objects.get_for_model(obj)).alive()
return {
'comment_count': comments.count(),
'last_comment': comments.last() if comments.exists() else None,
}
return {
'comment_count': 0,
'last_comment': None
}
К вашему сведению: объект публикации ORM не имеет атрибута комментариев, он должен быть заполнен позже.


Подробнее здесь: https://stackoverflow.com/questions/781 ... r-pydantic

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