【问题标题】:Tastypie resource model美味资源模型
【发布时间】:2012-04-03 18:59:46
【问题描述】:

我正在使用 mongoengine 制作美味的派。我有核心文件,但是当我在资源文件中使用它们时,它给了我错误:

'QuerySet' object has no attribute 'model'

资源文件

class GameResource(ModelResource):
class Meta:
    queryset = Sports.objects.all()
    resource_name = 'sports'    

核心文件

from mongoengine import *
class Sports(Document):
    game = StringField(max_length=50,required=True)
    name = StringField(max_length=50,required=True)

这是我收到的错误消息:

{"error_message": "", "traceback": "Traceback (most recent call last):\n\n  File \"c:\\virtualenvs\\env\\lib\\site-packages\\django_tastypie-0.9.11-
py2.6.egg\\tastypie\\resources.py\", line 192, in wrapper\n    
response = callback(request, *args, **kwargs)\n\n  File \"c:\\virtualenvs\\env\\lib\\site-packages\\django_tastypie-0.9.11-py2.6.egg\\tastypie\\resources.py\", 
line 397, in dispatch_list\n    return self.dispatch('list', request, **kwargs)\n\n  File \"c:\\virtualenvs\\env\\lib\\site-packages\\django_tastypie-0.9.11-py2.6.egg\\tastypie\\resources.py\", line 427, in dispatch\n    
response = method(request, **kwargs)\n\n  File \"c:\\virtualenvs\\env\\lib\\site-packages\\django_tastypie-0.9.11-py2.6.egg\\tastypie\\resources.py\",
line 1029, in get_list\n    objects = self.obj_get_list(request=request, **self.remove_api_resource_names(kwargs))\n\n  File \"c:\\virtualenvs\\env\\lib\\site-packages\\django_tastypie-0.9.11-py2.6.egg\\tastypie\\resources.py\", line 884, in obj_get_list\n    raise NotImplementedError()\n\nNotImplementedError\n"}

【问题讨论】:

    标签: tastypie mongoengine


    【解决方案1】:

    为了确定你的缩进是错误的,Meta 类应该是 GameResource 类的一部分,如下所示:

    class GameResource(ModelResource):
        class Meta:
            queryset = Sports.objects.all()
            resource_name = 'sports'   
    

    如果这不能解决问题,能否请您粘贴完整的回溯?您提到的错误似乎没有在此代码中触发(任何地方都没有“模型”属性)。因此很难理解错误到底是什么以及它到底发生在哪里。

    【讨论】:

    • 缩进是由于复制粘贴和我在 mongo 引擎上工作,所以我没有使用任何模型,我正在使用文档。
    • 来吧,你已经粘贴了 NotImplementedError 的回溯,这不是你在问题中提到的。请理清您的问题,并考虑对回溯使用代码格式以使其更易于阅读。
    • 另外,如果您不使用 Django 模型,那么为什么要从 ModelResource 继承?您应该从 Resource 继承并编写您的自定义数据操作代码。见django-tastypie.readthedocs.org/en/latest/…
    • 你有 mongo 引擎的例子吗?在这个例子中,他们使用了 riak,但我没有得到任何关于 mongo 引擎的帮助
    • 对不起,我没有。不过,您需要做的就是编写一些自定义方法。根据您的需要,您需要定义此处列出的一些方法:django-tastypie.readthedocs.org/en/latest/… 您还可以查看 ModelResource 类的源代码以了解它们如何处理 Django 模型,这应该会给您一些想法。幸运的是,它们并不难掌握:)
    【解决方案2】:

    如果有人需要一个关于如何为 MongoDB 创建 Tastypie 资源模型的示例,继承自 Resource,这里是一个非常有用的链接:

    http://djangosnippets.org/snippets/2830/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-09-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-09
      • 2013-04-26
      • 1970-01-01
      相关资源
      最近更新 更多