PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Tortoise ORM für Python gibt keine Relationen von Entitäten zurück (Pyndantic, FastAPI)

Das Problem tritt auf, wenn man vorher versucht, pydantische Modelle zu generieren Tortoise ORM wird initialisiert. Wenn Sie sich Basic Pydantic Beispiel sehen Sie, dass alle pydantic_model_creator heißen nach Tortoise.init .

Die naheliegende Lösung besteht darin, nach der Tortoise-Initialisierung pydantische Modelle zu erstellen, etwa so:


await Tortoise.init(db_url="sqlite://:memory:", modules={"models": ["__main__"]})
await Tortoise.generate_schemas()

Event_Pydantic = pydantic_model_creator(Event)

Oder verwenden Sie auf bequemere Weise early model init mittels Tortoise.init_models() . So:


from tortoise import Tortoise

Tortoise.init_models(["__main__"], "models")
Tournament_Pydantic = pydantic_model_creator(Tournament)

In diesem Fall besteht die Hauptidee darin, pydantic- und db-Modelle in verschiedene Module aufzuteilen, sodass das Importieren des ersten nicht zur vorzeitigen Erstellung des zweiten führt. Und stellen Sie sicher, dass Tortoise.init_models() aufgerufen wird bevor Sie pydantische Modelle erstellen.

Eine ausführlichere Beschreibung mit Beispielen finden Sie unter hier .