sql >> データベース >  >> RDS >> PostgreSQL

Python用のTortoiseORMは、エンティティの関係を返しません(Pyndantic、FastAPI)

    この問題は、に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モデルを作成する前に。

    例を含むより詳細な説明は、ここ




    1. サーブレットエラーによるユーザーの登録

    2. MySQLで1か月の日数を取得する方法

    3. DISTINCT <>GROUPBYの場合

    4. MySQLの保存期間-データ型?