Python 如何在django查询集中获取下一个n记录?
有没有办法在django queryset中获取下一个n记录 例如,在获得前五条记录后,我如何获得接下来的五条记录?我的用例是,我的页面上有一个“查看更多”按钮,每当单击“查看更多”按钮时(通过ajax),我都希望加载接下来的5条记录 我想做这样的事情Python 如何在django查询集中获取下一个n记录?,python,django,Python,Django,有没有办法在django queryset中获取下一个n记录 例如,在获得前五条记录后,我如何获得接下来的五条记录?我的用例是,我的页面上有一个“查看更多”按钮,每当单击“查看更多”按钮时(通过ajax),我都希望加载接下来的5条记录 我想做这样的事情 #function that handles ajax def load_next_five(initial_five) next_five = initial_five.??? return JsonResponse({'nex
#function that handles ajax
def load_next_five(initial_five)
next_five = initial_five.???
return JsonResponse({'next_five': list(next_five)})
def main_view(request):
initial_five = Car.objects.filter(year__gte=2000)
...
如何执行“加载下一个”功能?使用切片。你必须从你想开始的地方通过
def load_next_five(start)
next_five = Car.objects.filter(year__gte=2000)[start:start+5]
return JsonResponse({'next_five': list(next_five)})
def main_view(request):
initial_five = Car.objects.filter(year__gte=2000)[:5]
在封面下,Django将把它转换为限制数据库端结果的子句(例如,limit和OFFSET) 遵循django paginator,易于使用
def load_next_five(request):
car_obj = Car.objects.all()
paginator = Paginator(car_obj, 5) # change this number as you required
page = request.GET.get('page')
try:
cars = paginator.page(page)
except PageNotAnInteger:
cars = paginator.page(1)
except EmptyPage:
cars = paginator.page(paginator.num_pages)
return JsonResponse({'cars': cars})
查看分页。Django Rest框架还提供了一些分页工具,这些工具可能对您有用!我不知道Django中存在这种功能。您是否碰巧有一个指向“开始”部分文档的链接?查找“限制查询集”部分