この問題は、前にpydanticモデルを生成しようとすると発生します。 TortoiseORMが初期化されます。 基本的なpydantic> たとえば、すべてのpydantic_model_creator
後と呼ばれます Tortoise.init
。
明らかな解決策は、次のように、亀の初期化後にpydanticモデルを作成することです。
await Tortoise.init(db_url="sqlite://:memory:", modules={"models": ["__main__"]})
await Tortoise.generate_schemas()
Event_Pydantic = pydantic_model_creator(Event)
または、より便利な方法として、初期モデルの初期化を使用します。 Tortoise.init_models()
を使用 。そのように:
from tortoise import Tortoise
Tortoise.init_models(["__main__"], "models")
Tournament_Pydantic = pydantic_model_creator(Tournament)
この場合、主なアイデアは、pydanticモデルとdbモデルを異なるモジュールに分割することです。これにより、最初のモデルをインポートしても、事前に2番目のモデルが作成されることはありません。そして、必ずTortoise.init_models()
を呼び出してください。 pydanticモデルを作成する前に。
例を含むより詳細な説明は、ここ 。