Je suis en train de travailler sur une ancienne version de django avec MongoDBTypeError à/objet « SimpleLazyObject » est pas appelable
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
Je suis en train de faire la connexion à la base de données
mais il retourne: TypeError à/ 'SimpleLazyObject' objet n'est pas appelable
Ceci est mon fichier __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)
Je suis nouveau à django, merci d'avance.
merci pour la réponse, vous avez raison; Je l'ai compris aussi et j'allais mettre à jour le post. de toute façon merci pour la réponse. changer le nom au niveau du module créé la collection '** ** = mongoClient SimpleLazyObject (get_connection) def get_collection (nom_collection): getattr de retour (** ** mongoClient, nom_collection)' –