PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Tortoise ORM untuk Python tidak ada hubungan pengembalian entitas (Pyndantic, FastAPI)

Masalah terjadi ketika seseorang mencoba membuat model pydantic sebelum Tortoise ORM diinisialisasi. Jika Anda melihat pydantic dasar contoh Anda akan melihat bahwa semua pydantic_model_creator dipanggil setelah Tortoise.init .

Solusi yang jelas adalah membuat model pydantic setelah inisialisasi Tortoise, seperti:


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

Event_Pydantic = pydantic_model_creator(Event)

Atau cara yang lebih nyaman, gunakan init model awal melalui Tortoise.init_models() . Seperti ini:


from tortoise import Tortoise

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

Dalam kasus ini, ide utamanya adalah untuk membagi model pydantic dan db menjadi modul yang berbeda, sehingga mengimpor yang pertama tidak mengarah pada pembuatan yang kedua sebelumnya. Dan pastikan memanggil Tortoise.init_models() sebelum membuat model pydantic.

Penjelasan lebih rinci dengan contoh dapat ditemukan di sini .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara Mencapai Ketersediaan Tinggi PostgreSQL dengan pgBouncer

  2. Kesalahan:INTO ditentukan lebih dari sekali pada atau di dekat INTO

  3. Cara membuang struktur database PostgreSQL (setiap objek dalam file terpisah)

  4. Kiat Penyesuaian Kinerja PostgreSQL

  5. psql:FATAL:basis data <pengguna> tidak ada