PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

पाइथन के लिए कछुआ ओआरएम संस्थाओं के संबंध नहीं लौटाता है (पंडेंटिक, फास्टएपीआई)

समस्या तब होती है जब कोई पहले . पाइडेंटिक मॉडल जेनरेट करने का प्रयास करता है कछुआ ORM आरंभीकृत है। अगर आप बेसिक पाइडैन्टिक उदाहरण के लिए आप देखेंगे कि सभी pydantic_model_creator बाद . कहलाते हैं Tortoise.init

स्पष्ट समाधान कछुआ आरंभीकरण के बाद पाइडेंटिक मॉडल बनाना है, जैसे:


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

Event_Pydantic = pydantic_model_creator(Event)

या अधिक सुविधाजनक तरीके से, प्रारंभिक मॉडल init . का उपयोग करें Tortoise.init_models() . के माध्यम से . इस तरह:


from tortoise import Tortoise

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

मामले में, मुख्य विचार पाइडेंटिक और डीबी मॉडल को अलग-अलग मॉड्यूल में विभाजित करना है, ताकि पहले को आयात करने से समय से पहले दूसरे का निर्माण न हो। और कॉल करना सुनिश्चित करें 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. php सूची दृश्य में खोज डेटा के लिए चयन बॉक्स का उपयोग कैसे करें (तालिका)

  2. PostgreSQL:यदि मौजूद नहीं है तो तालिका बनाएं AS

  3. एक विदेशी कुंजी के रूप में एक कॉलम जोड़ने से विदेशी कुंजी बाधा में संदर्भित त्रुटि कॉलम मौजूद नहीं है

  4. pqxx::result::tuple घोषित नहीं किया गया है (C++ के लिए PostgreSQL लाइब्रेरी)

  5. PostgreSQL डेटाबेस में सभी संग्रहीत प्रक्रियाओं को सूचीबद्ध करने के 3 तरीके