2013-04-13 25 views
0

已经按照有关如何设置与MongoDB的一个Django项目,但运行测试命令时,仍然得到同样的错误,许多教程:我如何建立的MongoDB和Django

python manage.py runsever 

这里是我的链接一直在下面:

http://www.allbuttonspressed.com/blog/django/2010/05/MongoDB-backend-for-Django-nonrel-released

这里有错误,我从上面的命令得到:

Validating models... 

Unhandled exception in thread started by <bound method Command.inner_run of <django.contrib.staticfiles.management.commands.runserver.Command object at 0x10d266210>> 
Traceback (most recent call last): 

File "/Library/Python/2.7/site-packages/django/core/management/commands/runserver.py", line 91, in inner_run 
self.validate(display_num_errors=True) 

File "/Library/Python/2.7/site-packages/django/core/management/base.py", line 266, in validate 
num_errors = get_validation_errors(s, app) 

File "/Library/Python/2.7/site-packages/django/core/management/validation.py", line 23, in get_validation_errors 
from django.db import models, connection 

File "/Library/Python/2.7/site-packages/django/db/__init__.py", line 40, in <module> 
backend = load_backend(connection.settings_dict['ENGINE']) 

File "/Library/Python/2.7/site-packages/django/db/__init__.py", line 34, in __getattr__ 
return getattr(connections[DEFAULT_DB_ALIAS], item) 

File "/Library/Python/2.7/site-packages/django/db/utils.py", line 92, in __getitem__ 
backend = load_backend(db['ENGINE']) 

File "/Library/Python/2.7/site-packages/django/db/utils.py", line 24, in load_backend 
return import_module('.base', backend_name) 

File "/Library/Python/2.7/site-packages/django/utils/importlib.py", line 35, in import_module 
__import__(name) 

File "build/bdist.macosx-10.8-intel/egg/django_mongodb_engine/__init__.py", line 13, in <module> 

AttributeError: 'tuple' object has no attribute 'insert' 

我不知道为什么这不起作用,理想情况下我只想要一个数据库设置专门用于存储JSON文档。将Django与另一个存储JSON信息的理想数据库相连吗?

+0

您是否在使用MongoDB 2.4?因为我在django-nonrel和mongo上有一个项目,工作得很好,直到我升级到2.4,现在他们似乎不能一起工作。 – lciamp

回答

0

澄清:

INSTALLED_APPS应该是元组。

他得到AttributeError: 'tuple' object has no attribute 'insert',因为mongodb不能正确处理元组INSTALLED_APPS。 mongodb中的默认值是插入列表。这已经修复过,但现在它已经消失了。

有建议是:

  • 改变你settings.INSTALLED_APPS到一个列表,而不是一个元组。 (这对我不利)
  • 通过添加修补程序更正其代码
+0

wut ??? INSTALLED_APPS应该是一个元组。不是一个列表。 – lciamp

+0

@lciamp mongoDB被列表插入,这就是为什么他得到这个错误。因为他安装的app是与mongoDB插入列表冲突的元组,明白吗?为了解决他的问题,他可以使用插入或添加修补程序来正确运行 – catherine

+0

哦,现在有意义!感谢您的澄清! – lciamp