[英]How to get the next n records in a django queryset?
有没有办法在Django queryset中获取下一个n条记录?
例如,在获得前五个记录后如何获得下五个记录? 我的用例是我的页面上有一个“查看更多”按钮,并且每当单击“查看更多”按钮时(通过ajax),我都想加载下5条记录。
我想做这样的事情
#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)
...
我将如何处理load_next_five函数?
用一片。 您必须传递您想开始的地方。
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分页器,易于使用。
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})
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.