在Django Tastypie中限制查询集

时间:2013-02-24 17:59:56

标签: django api rest tastypie

我正在用django和tastypie构建一个应用程序,并尝试通过ajax加载对象。 例如,我显示3个对象,然后一旦用户到达最后一个我加载3个等。

所以我试图修改tastypie api中的查询集,但找不到如何做到这一点。 在ajax调用中,我发送一个参数start来定义限制的开始。但我不知道在哪里可以访问此参数并修改查询集。

class EntryResource(ModelResource):

    def dehydrate(self, bundle):
        # I can get the parameter here but it's not useful
        start = bundle.request['start']
        return bundle

    def get_object_list(self, request):
        # I can modify the objects returned here but how can I access bundle.request ?
        return super(EntryResource, self).get_object_list(request).filter(active=True)

    class Meta:
        queryset = Entry.objects.all()
        resource_name = 'entry'

1 个答案:

答案 0 :(得分:1)

找到解决方案。这实际上非常简单但我会写下答案,以防它对其他人有用。

解决方案是使用分页器(我没有用Google搜索正确的术语,所以我最初没有找到它)。 我是ajax电话,我发送了offsetlimit个参数。

更多:http://django-tastypie.readthedocs.org/en/latest/paginator.html