设置(龟形模型):
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())