我正在用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'
答案 0 :(得分:1)
找到解决方案。这实际上非常简单但我会写下答案,以防它对其他人有用。
解决方案是使用分页器(我没有用Google搜索正确的术语,所以我最初没有找到它)。
我是ajax电话,我发送了offset
和limit
个参数。
更多:http://django-tastypie.readthedocs.org/en/latest/paginator.html