【问题标题】:Tastypie for MongoDB error: get_resource_uri() takes exactly 2 arguments (1 given)Tastypie for MongoDB 错误:get_resource_uri() 正好需要 2 个参数(1 个给定)
【发布时间】:2014-06-13 04:34:28
【问题描述】:

我在我的 Django 项目中添加了一个带有 Mongodb 后端的tastepie。当我查询 /api/myresource

我收到此错误:

{"error_message": "get_resource_uri() takes exactly 2 arguments (1 given)", 
"traceback": "Traceback (most recent call last):\n\n  
File \"/usr/local/lib/python2.7/dist-packages/tastypie/resources.py\", line 195,
 in wrapper\n    response = callback(request, *args, **kwargs)
 File \"/usr/local/lib/python2.7/dist-packages/tastypie/resources.py\", line 426,
 in dispatch_list\n    return self.dispatch('list', request, **kwargs)
 File \"/usr/local/lib/python2.7/dist-packages/tastypie/resources.py\", line 458,
 in dispatch\n    response = method(request, **kwargs)
  File \"/usr/local/lib/python2.7/dist-packages/tastypie/resources.py\", 
line 1269, in get_list
paginator = self._meta.paginator_class(request.GET,
sorted_objects, resource_uri=self.get_resource_uri(), limit=self._meta.limit, max_limit=self._meta.max_limit, collection_name=self._meta.collection_name)
TypeError: get_resource_uri() takes exactly 2 arguments (1 given)\n"}

【问题讨论】:

    标签: python django tastypie


    【解决方案1】:

    当我将我的应用程序从 django 1.4 升级到 1.7 并升级 django-tastypie 时,我遇到了同样的错误。我的资源之一有它自己的 get_resource_uri 定义:get_resource_uri(self, bundle_or_obj)

    在较新版本的 django-tastypie 中,第二个参数现在是默认的:

    def get_resource_uri(self, bundle_or_obj=None, url_name='api_dispatch_list'):

    所以我改变了我的方法签名以匹配新的签名,一切都很好。

    事实证明,我不再需要为我的用例重写​​ get_resource_uri(),所以我可以删除它。

    【讨论】:

      猜你喜欢
      • 2013-02-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-21
      • 2015-07-17
      • 2015-01-21
      • 1970-01-01
      相关资源
      最近更新 更多