2011-09-01 7 views
2

Я пытаюсь настроить меня пирамиды приложение какPyMongo и Pyramid настройки

https://github.com/niallo/pyramid_mongodb/blob/master/pyramid_mongodb/paster_templates/pyramid_mongodb/+package+/init.py_tmpl

но при config.registry.settings['mongodb_conn'] = conn получить ошибку:

File "/usr/local/lib/python2.6/dist-packages/pymongo-2.0.1-py2.6-linux-i686.egg/pymongo/database.py", line 682, in __call__ 
    "failing because no such method exists." % self.__name) 
TypeError: 'Database' object is not callable. If you meant to call the '__html__' method on a 'Connection' object it is failing because no such method exists. 

, что случилось?

+0

0 Какой тип db_uri вы используете? – varela

+0

Я думаю, что это тот же вопрос, что и http://stackoverflow.com/questions/7201969/how-to-integrate-pyramid-1-1-and-mongo-db-as-few-lines-as-possible. –

ответ

0

Проверьте MongoDB URI он должен быть в формате, как описано здесь

http://www.mongodb.org/display/DOCS/Connections

MongoDB: // [имя пользователя: пароль @] host1 [: port1] [, host2 [: port2], .. . [, hostN [: portN]]] [/ [база данных] [? options]]

+0

MongoDB: // локальной db_uri = Настройка [ 'mongodb.url'] сопп = pymongo.Connection (db_uri) config.registry.settings [ 'mongodb_conn'] = соппы также не работает – alexzH

+0

попробуйте только локальный – varela

2

Это на самом деле ошибка в pyramid_debugtoolbar < = 0.9. Обновите до 0.9.1 или отключите панель инструментов отладки.

+0

кажется как ошибка существует также в 0.9.1 и 0.9.2 –

0

настоящее время я использую обходной путь здесь: https://groups.google.com/group/pylons-discuss/browse_thread/thread/394fb7ae9838f840/5d7a24a1d899844f?hl=fr&lnk=gst&q=html+mongodb+#5d7a24a1d899844f

В вашем __init__.py, только после того, как линии

conn = pymongo.Connection(db_uri) 

Добавить это:

conn.__html__ = lambda: "mongodb connection" 

и этого достаточно, чтобы используйте панель инструментов отладки с mongodb, как описано в кулинарной книге пирамиды.

1

Если вы все еще интересуетесь пимонго и пирамидой, я бы порекомендовал вам использовать мой пакет pyramid_mongo.

Вы можете найти здесь:

http://pypi.python.org/pypi?:action=display&name=pyramid_mongo&version=0.1

И документацию здесь:

http://packages.python.org/pyramid_mongo/

Это немного больше, чем просто леске. В отличие от pyramid_mongodb, он пытается имитировать пакет zodb и, возможно, некоторые более интересные вещи, такие как поддержка обхода. Я никогда не нахожу много времени, чтобы это сделать. Но это выходит однажды. На данный момент достаточно использовать мангодб.

 Смежные вопросы

  • Нет связанных вопросов^_^