समस्या तब होती है जब कोई पहले . पाइडेंटिक मॉडल जेनरेट करने का प्रयास करता है कछुआ 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()
पाइडेंटिक मॉडल बनाने से पहले।
उदाहरणों के साथ अधिक विस्तृत विवरण पाया जा सकता है यहां ।