PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Żółw ORM dla Pythona nie zwraca relacji encji (Pyndantic, FastAPI)

Problem występuje, gdy próbuje się wygenerować modele pidantyczne przed Zainicjowano ORM żółwia. Jeśli spojrzysz na podstawowy pydantic przykład zobaczysz, że wszystkie pydantic_model_creator nazywają się po Tortoise.init .

Oczywistym rozwiązaniem jest tworzenie modeli pydantycznych po inicjalizacji Tortoise, na przykład:


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

Event_Pydantic = pydantic_model_creator(Event)

Lub wygodniej, użyj wczesnego uruchamiania modelu za pomocą Tortoise.init_models() . Tak:


from tortoise import Tortoise

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

W tym przypadku główną ideą jest podzielenie modeli pydantic i db na różne moduły, tak aby importowanie pierwszego nie prowadziło do stworzenia drugiego z wyprzedzeniem. I upewnij się, że wywołasz Tortoise.init_models() przed tworzeniem modeli pidantycznych.

Bardziej szczegółowy opis z przykładami można znaleźć tutaj .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Partycje SparkSQL PostgresQL Dataframe

  2. Zmiana typu danych na zmiennoprzecinkowe i zaokrąglanie do 2 cyfr dziesiętnych

  3. Jak połączyć C# z Postgresem?

  4. Oracle do PostgreSQL:składnia złączenia zewnętrznego ANSI w PostgreSQL

  5. Najlepszy sposób na przechowywanie ostatniego dotkniętego czasu w Cassandra