Django-tastypie-mongoengine在linux上失败了

时间:2013-05-16 09:07:16

标签: django rest mongoengine tastypie

使用django-tastypie-mongoengine

相同配置在本地服务器/ Windows服务器上正常工作。在linux服务器上,出现以下错误:

{"error_message": "'QuerySet' object has no attribute '_reset_already_indexed'", "traceback": "Traceback (most recent call last):\n\n File \"/usr/local/lib/python2.7/site-packages/tastypie/resources.py\", line 217, in wrapper\n response = callback(request, *args, **kwargs)\n\n File \"/usr/local/lib/python2.7/site-packages/tastypie/resources.py\", line 459, in dispatch_list\n return self.dispatch('list', request, **kwargs)\n\n File \"/usr/local/lib/python2.7/site-packages/tastypie_mongoengine/resources.py\", line 373, in dispatch\n return super(MongoEngineResource, self).dispatch(request_type, request, **kwargs)\n\n File \"/usr/local/lib/python2.7/site-packages/tastypie/resources.py\", line 491, in dispatch\n response = method(request, **kwargs)\n\n File \"/usr/local/lib/python2.7/site-packages/tastypie/resources.py\", line 1299, in get_list\n objects = self.obj_get_list(bundle=base_bundle, **self.remove_api_resource_names(kwargs))\n\n File \"/usr/local/lib/python2.7/site-packages/tastypie/resources.py\", line 2112, in obj_get_list\n objects = self.apply_filters(bundle.request, applicable_filters)\n\n File \"/usr/local/lib/python2.7/site-packages/tastypie/resources.py\", line 2084, in apply_filters\n return self.get_object_list(request).filter(**applicable_filters)\n\n File \"/usr/local/lib/python2.7/site-packages/tastypie_mongoengine/resources.py\", line 309, in get_object_list\n self._reset_collection()\n\n File \"/usr/local/lib/python2.7/site-packages/tastypie_mongoengine/resources.py\", line 301, in _reset_collection\n self._meta.queryset._reset_already_indexed()\n\nAttributeError: 'QuerySet' object has no attribute '_reset_already_indexed'\n"}

请帮助!!

2 个答案:

答案 0 :(得分:1)

您需要卸载mongoengine 0.8.0RCX并安装mongoengine 0.7.10

答案 1 :(得分:1)

将Mongoengine从0.7.9升级到0.8.4之后也发生了这种情况。事实证明,他们用django-tastypie-mongoengine的版本v0.4.2解决了这个问题。

在你的virtualenv中(如果你使用的话):

$ pip install django-tastypie-mongoengine==0.4.2

或者如果您想要最新版本:

$ pip install django-tastypie-mongoengine -U

你是金色的: - )

  

在此处构建信息:Build for django-tastypie-mongoengine

     

HEAD现在位于703fa87。对于较新版本的MongoEngine _reset_already_indexed不再需要了。