tortoise-orm关于pydantic序列化模型外键字段无法生成的问题

首先我们定义两个模型,使用外键关联

from tortoise import fields
from tortoise.models import Modelclass Tournament(Model):"""This references a Tournament"""id = fields.IntField(pk=True)name = fields.CharField(max_length=100)#: The date-time the Tournament record was created atcreated_at = fields.DatetimeField(auto_now_add=True)class Event(Model):"""This references an Event in a Tournament"""id = fields.IntField(pk=True)name = fields.CharField(max_length=100)created_at = fields.DatetimeField(auto_now_add=True)tournament = fields.ForeignKeyField("models.Tournament", related_name="events", description="The Tournement this happens in")

使用pydantic_model_creator方法直接生成序列化模型,免去了手动编写序列化模型的麻烦,打印schema

from tortoise.contrib.pydantic import pydantic_model_creatorTournament_Pydantic = pydantic_model_creator(Tournament)
>>> print(Tournament_Pydantic.schema())
{'title': 'Tournament','description': 'This references a Tournament','type': 'object','properties': {'id': {'title': 'Id','type': 'integer'},'name': {'title': 'Name','type': 'string'},'created_at': {'title': 'Created At','description': 'The date-time the Tournament record was created at','type': 'string','format': 'date-time'}}
}

发现根本没有生成外键字段
然后我们使用Tortoise.init_models对模型先进行初始化,其中[]中填写的是模型的位置,后面一个参数是app label, 例如 ‘models’

from tortoise import TortoiseTortoise.init_models(["app.models.model"], "models")
# Now lets try again
Event_Pydantic = pydantic_model_creator(Event)

打印schema:

>>> print(Event_Pydantic.schema())
{'title': 'Event','description': 'This references an Event in a Tournament','type': 'object','properties': {'id': {'title': 'Id','type': 'integer'},'name': {'title': 'Name','type': 'string'},'created_at': {'title': 'Created At','type': 'string','format': 'date-time'},'tournament': {'title': 'Tournament','description': 'The Tournement this happens in','allOf': [{'$ref': '#/definitions/Tournament'}]}},'definitions': {'Tournament': {'title': 'Tournament','description': 'This references a Tournament','type': 'object','properties': {'id': {'title': 'Id','type': 'integer'},'name': {'title': 'Name','type': 'string'},'created_at': {'title': 'Created At','description': 'The date-time the Tournament record was created at','type': 'string','format': 'date-time'}}}}
}

这个序列化模型就带上了外键字段

tortoise-orm关于pydantic序列化模型外键字段无法生成的问题相关推荐

  1. day08 外键字段的增删改查 正向反向插叙概念 跨表查询 聚合查询与分组查询 F查询

    day08 外键字段的增删改查 正向反向插叙概念 跨表查询 聚合查询与分组查询 F查询 昨日内容复习 自定义过滤器.标签.inclusion_tag 1.首先现在应用目录下创建名字为templatet ...

  2. (转)基于MVC4+EasyUI的Web开发框架经验总结(9)--在Datagrid里面实现外键字段的转义操作...

    http://www.cnblogs.com/wuhuacong/p/3872890.html 我们在使用EasyUI的时候,很多情况下需要使用到表格控件datagrid,这个控件控件非常强大,使用起 ...

  3. xadmin 显示外键字段

    如果需要显示在list_display中则需要对外键的model进行修改, 然后list_display中填字段名就好 例: #models.py class A(models.Model):...n ...

  4. mysql设置外键并一键生成数据表关系图

    文章目录 1.概念 2.理解 3.添加外键时需要注意的规则 4.navicat for mysql中设置外键 5.数据表关系图的创建 1.概念 主键是能确定一条记录的唯一标识. 外键用于与另一张表的关 ...

  5. 外键字段未建索引引发的死锁

    现象:一个很简单的程序在压力测试过程中发现死锁,查看trace文件,发现如下信息: Deadlock graph: ---------Blocker(s)-------- ---------Waite ...

  6. mysql修改外键字段报异常_mysql修改索引时,外键约束造成的奇怪问题_MySQL

    Mysql外键 bitsCN.com mysql修改索引时,外键约束造成的奇怪问题 事情是这样的,在Windows的mysql5.5 ,我想修改一个表的索引,于是执行 [sql] ALTER TABL ...

  7. 转化关系模型外键_网站数据分析:流量运营分析模型拯救你的广告流量

    点击上方蓝色字关注我们~ 来源:掘金 本章的分析模型围绕流量数据化运营展开,主要包括:流量波动检测.渠道特征聚类.广告整合传播模型.流量预测模型. 1 流量波动检测 在广告流量结构中,有几类流量是相对 ...

  8. Django annotate: 外键字段解析问题

    错误信息: FieldError:Cannot resolve keyword 'entry' into field. Choices are:xx,xx,xx, Models: class Ami( ...

  9. django-rest-framework序列化外键操作序列化

    项目是有django django-rest-framework django-filter 组合.其中django-rest-framwork的几个组合包一定要记得下载,否则会导致部分功能不能用. ...

最新文章

  1. 我来分析委托的协变与逆变
  2. angular2、ng2 http get post 传参
  3. HTML中的5种空格表示,HTML中的5种空格各表示的意义
  4. 常见荧光定量 PCR 检测方法比较
  5. jzoj3682-Points and Segments【模型转化,欧拉回路】
  6. vue axios解决post传参数问题
  7. Python文档阅读笔记-PyAutoGUI基本使用
  8. Qt 信号-槽的同步与异步处理
  9. ltp-ddt的makefile结构
  10. PLSQL连接本地的Oracle数据库
  11. NWT融资一百万,被老张嘲笑了
  12. Atitit 理解参数 目录 1. 参数 1 1.1. 意义 1 1.2. 形式参数 实际参数 1 1.3. 默认参数 vs 必须参数 2 1.4. 位置参数,那么这个命名关键字参数 2 1.5. I
  13. 阿斯克码表ACSII对照表
  14. 从零读懂CAN总线(上)
  15. idea 常用配置介绍(一)
  16. 第三章微分中值定理与导数应用
  17. Java8 ConcurrentHashMap的get()方法真的不需要加锁吗?
  18. unittest pycharm test framework quit unexpectedly 解决 Empty suite问题
  19. 传音控股以科技立品牌,2021一季度净利大增125.93%
  20. 征文 | 收获,不止GBase 8a——GBase 8a培训总结与感受

热门文章

  1. R语言 时间处理 时间分段
  2. FreeRTOS学习笔记【六】——FreeRTOS 任务相关 API 函数
  3. twilio python自动拨打电话,播放自定义mp3音频
  4. 低温等离子体技术的应用
  5. 《手把手教你》系列练习篇之9-python+ selenium自动化测试 -番外篇 - 最后一波啊!!!(详细教程)
  6. 基于人工智能深度学习技术的高速公路路段安全指数分析与预测
  7. Vmware虚拟机安装Windows XP时,F8键无效
  8. 计算机发展史上代表性的人物,创新人物代表
  9. go语言之map的使用
  10. 商贸宝提示演示版的解决办法