如何使用pydantic序列化模型's所有相关模型



设置(龟形模型):

class Hand(BaseModel):
id: int
fingers: fields.ReverseRelation["Finger"]

class Finger(BaseModel):
id: int
hand: fields.ForeignKeyField(model_name="models.User", related_name="fingers", null=True)

假设我们有一只手的id,我们想要返回它所有相关的手指给用户。如何创建pydantic模型,我该如何查询所有提到的手指?

我到目前为止尝试过的(没有运气):

# 1

Fingers_dto = pydantic_queryset_creator(Finger)
hand = await Hand.get(pk=id).prefetch_related("fingers")
return await Fingers_dto.from_queryset(hand.fingers)

# 2

Fingers_dto = Finger.create_query_set()
hand = await Hand.filter(pk=id)
await hand.fetch_related("fingers")
return await Fingers_dto.from_queryset(hand.fingers)

要做到这一点,我必须做以下事情:

Fingers_dto = pydantic_queryset_creator(Finger)
hand = await Hand.get(pk=id)
return await Fingers_dto.from_queryset(hand.fingers.all())