Tortoise-ORM. Отображение внешних сущностей в PyDantic моделях
Столкнулся с проблемой отображения внешних сущностей в PyDantic моделях.
Имею структуру сущностей в БД:
class User(models.Model):
id = fields.BigIntField(pk=True)
username = fields.CharField(max_length=1024, null=True)
class Message(models.Model):
id = fields.BigIntField(pk=True)
date = fields.DatetimeField()
user: fields.ForeignKeyRelation["User"] = fields.ForeignKeyField("models.User", on_delete=fields.CASCADE)
text = fields.TextField()
Мною через pydantic_model_creator созданы модели:
UserRp = pydantic_model_creator(User, name="UserRp")
MessageRp = pydantic_model_creator(Message, name="MessageRp")
Пытаюсь вызвать запрос через конструкцию:
await MessageRp.from_queryset(Message.filter(user=user_id).order_by("-date"))
Возвращает все поля кроме user. Даже если дополнить строку методом prefetch_related("user").
Подскажите в чем может быть проблема. Добавление include-ов в pydantic_model_creator успехом не увенчался
Ответы (1 шт):
Автор решения: Evilis Hant
→ Ссылка
Попробуй так -
user = await User.get_or_none(id={id})
pydantic_model = pydantic_model_creator(
MessageRp,
name="MessageRp",
include=("user",),
)
await pydantic_model.from_tortoise_orm(await MessageRp.filter(user=user))