PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Tortoise ORM cho Python không có quan hệ trả về của các thực thể (Pyndantic, FastAPI)

Sự cố xảy ra khi một người cố gắng tạo các mô hình pydantic trước đó ORM của Tortoise được khởi tạo. Nếu bạn xem pydantic cơ bản ví dụ, bạn sẽ thấy rằng tất cả pydantic_model_creator được gọi là sau Tortoise.init .

Giải pháp rõ ràng là tạo các mô hình khổng lồ sau khi khởi tạo Tortoise, như sau:


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

Event_Pydantic = pydantic_model_creator(Event)

Hoặc một cách thuận tiện hơn, hãy sử dụng init model đầu tiên bằng Tortoise.init_models() . Như vậy:


from tortoise import Tortoise

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

Trong trường hợp này, ý tưởng chính là chia mô hình pydantic và db thành các mô-đun khác nhau, để việc nhập mô hình đầu tiên không dẫn đến việc tạo mô hình thứ hai trước thời hạn. Và đảm bảo gọi Tortoise.init_models() trước khi tạo mô hình pydantic.

Bạn có thể tìm thấy mô tả chi tiết hơn với các ví dụ tại đây .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách Asind () hoạt động trong PostgreSQL

  2. SQLAlchemy:cập nhật from_select

  3. Tạo bảng tổng hợp với PostgreSQL

  4. PostgreSQL 9.4 - Sử dụng toán tử tùy chỉnh trong ràng buộc EXCLUDE

  5. Autocommit có nghĩa là gì trong postgresql và psycopg2?