遇到這樣的情況不要慌,不要慌
1:檢查模型是否已經初始化:
class TaskModel(Document):"""定時任務模型"""task_id: str = Field(default_factory=lambda: str(uuid.uuid4()), # 新增默認值description="任務唯一標識(UUID)")task_name: str = Field(None, description="任務名稱(唯一索引,便于識別和管理)")
_models= [TaskModel]
connection_string = f"mongodb://{username}:{password}@{host}:{port}/{database_name}?authSource={database_name}" client = AsyncIOMotorClient(connection_string) await init_beanie(database=client[database_name], document_models=[_models])
2:檢查導入的模型路徑
? ? ?如果采用相對路徑導入,如src.db.model...,會導致,部分模型導入成功,而一部分模型可能導入不成功,以至于你的部分模型,CURD正常,而一些模型會出現beanie.exceptions.CollectionWasNotInitialized,所以請直接采用絕對路徑導入db.model.....,就能解決部分模型可以使用,部分模型錯誤的情況。
祝看到文章的人:福生無量天尊!
PS:我之前的項目有20多個模型,但是就是一部分模型無法正常使用CURD,找不到原因。
艱苦排查下發現這個讓人發瘋的結果。。。這個問題困擾了我兩天時間,希望能幫助你節省時間!