sql >> Databasteknik >  >> RDS >> PostgreSQL

Tortoise ORM för Python ingen returrelationer för enheter (Pyndantic, FastAPI)

Problemet uppstår när man försöker generera pydantiska modeller före Tortoise ORM initieras. Om du tittar på grundläggande pydantik exempel kommer du att se att alla pydantic_model_creator kallas efter Tortoise.init .

Den uppenbara lösningen är att skapa pydantiska modeller efter sköldpaddsinitiering, som så:


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

Event_Pydantic = pydantic_model_creator(Event)

Eller ett mer bekvämt sätt, använd tidig modell init med hjälp av Tortoise.init_models() . Som så:


from tortoise import Tortoise

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

I fallet är huvudidén att dela upp pydantic- och db-modeller i olika moduler, så att import av den första inte leder till skapandet av den andra i förväg. Och se till att anropa Tortoise.init_models() innan du skapar pydantiska modeller.

En mer detaljerad beskrivning med exempel finns här .




  1. Hur man separerar text med hjälp av delsträng

  2. Vad är en kandidatnyckel i databasdesign?

  3. Vilket är det bästa sättet att validera XML mot XML Schema, analysera det och lagra data tillbaka till MySQL Database med Perl?

  4. PHP/MySQL - algoritm för topprankade