0
我試圖用MongoDB的一個老版本的Django的工作類型錯誤在/「SimpleLazyObject」對象不是可調用
Django==1.5.11
django-crispy-forms==1.5.2
django-ifc-rwfm==0.1
django-mongodb-engine==0.6.0
django-registration-redux==1.2
djangotoolbox==1.8.0
pymongo==3.2.2
我試圖讓連接到數據庫
但它返回:類型錯誤的/ 'SimpleLazyObject' 對象不是可調用
這是我的__init__.py文件
from django.conf import settings
from django.utils.functional import SimpleLazyObject
from pymongo import MongoClient
_connection = None
def get_connection():
global _connection
if not _connection:
_connection = MongoClient(
host=getattr(settings, 'MONGODB_HOST', None),
port=getattr(settings, 'MONGODB_PORT', None)
)
username = getattr(settings, 'MONGODB_USERNAME', None)
password = getattr(settings, 'MONGODB_PASSWORD', None)
db = _connection[settings.MONGODB_DATABASE]
if username and password:
db.authenticate(username, password)
return db
return _connection[settings.MONGODB_DATABASE]
MongoClient = SimpleLazyObject(get_connection)
def get_collection(collection_name):
return getattr(MongoClient, collection_name)
我是django的新手,在此先感謝。
感謝您的回答,你是對的;我想清楚了,並打算更新這篇文章。無論如何感謝回覆。 改變模塊級名稱創建集合 '** mongoClient ** = SimpleLazyObject(get_connection) DEF get_collection(集合名稱): 返回GETATTR(** ** mongoClient,集合名稱)' –