sql >> Database >  >> RDS >> PostgreSQL

Tortoise ORM voor Python geen relaties van entiteiten (Pyndantic, FastAPI)

Het probleem doet zich voor wanneer men probeert pydantische modellen te genereren voor Schildpad ORM is geïnitialiseerd. Als je kijkt naar basic pydantic voorbeeld zul je zien dat alle pydantic_model_creator worden naar . genoemd Tortoise.init .

De voor de hand liggende oplossing is om pydantische modellen te maken na de initialisatie van Tortoise, zoals:


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

Event_Pydantic = pydantic_model_creator(Event)

Of een handiger manier, gebruik early model init door middel van Tortoise.init_models() . Vind ik leuk:


from tortoise import Tortoise

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

In dit geval is het belangrijkste idee om pydantic- en db-modellen op te splitsen in verschillende modules, zodat het importeren van de eerste niet leidt tot het maken van de tweede van tevoren. En zorg ervoor dat u Tortoise.init_models() . aanroept voordat u pydantische modellen maakt.

Een meer gedetailleerde beschrijving met voorbeelden is te vinden hier .




  1. .NET Core kan geen verbinding maken met externe SQL Server-database

  2. DevOps:DBA of Developer – De juiste balans vinden

  3. Android SQLite invoegen of bijwerken

  4. Wat is het verschil tussen door komma's gescheiden joins en join op syntaxis in MySQL?