概述
本文主要记录使用tortoise-orm遇到的一些坑
tortoise-orm的官网上面有很多的实例,但是使用的时候还是会遇到一些问题。
pydantic_model_creator 字段不全问题
如果使用pydantic_model_creator
创建model,会遇到字段显示不完全,外键和多对多全部都没有。
解决方案:
在调用该方法之前需要先进行激活model,大致方法如下:
stAPI(debug=settings.DEBUG)
# 这一步不会真的访问数据库
Tortoise.init_models(settings.TORTOISE_ORM["apps"]["models"]["models"], "models")
# 一定要先把model初始化之后再引入路由,防止在初始化schema之前就被调用导致schema字段不全
from fast_tmp.factory import create_fast_tmp_app
from .apps.api.routes.amis_html import router as amis_test_router
fast_tmp_app = create_fast_tmp_app()
fast_app.include_router(amis_test_router, )
fast_app.mount(settings.ADMIN_URL, fast_tmp_app)
pydantic_model_creator include、exclude失效问题
pydantic_model_creator
字段具有缓存功能,如果使用该函数的时候没有提供名字,则会导致返回之前引用过的同名的schmea,那么你这次使用的就会失效。
更新中