PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Tortoise ORM за Python не връща връзки на обекти (Pyndantic, FastAPI)

Проблемът възниква, когато се опитате да генерирате пидантични модели преди Tortoise ORM се инициализира. Ако погледнете основен пидантик пример ще видите, че всички pydantic_model_creator се наричатслед Tortoise.init .

Очевидното решение е да се създадат пидантични модели след инициализация на Tortoise, така:


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 на различни модули, така че импортирането на първия да не води до създаване на втория преди време. И осигурете извикване на Tortoise.init_models() преди да създадете пидантични модели.

По-подробно описание с примери можете да намерите тук .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да обобщим всички редове въз основа на колона за изброяване в PostgreSQL part2?

  2. Postgresql поддържа ли lookbehind regexp?

  3. План за заявка на postgres с индекси

  4. INSERT и сериализация на транзакция в PostreSQL

  5. миграция на релси:postgresql за md5 на произволен низ по подразбиране