Django:从 Django 数据库中获取下一组查询以进行异步加载

Django: Fetch next set of queries from Django database for async loading

例如,如果我的 Django table 有数百行,最初,在一个视图中,我以以下格式获取前 10 条记录以显示在网页上。

def fetchtExperts(request):
    if request.method == "GET":
        experts = Experts.objects.exclude(client_assigned=None).values('id', 'name', 'age').order_by('qualification')[:10]

    return render(request, 'index.html', {'experts': experts})

如果这 10 条记录显示在第 1 页上,我希望在用户点击第 2 页时显示接下来的 10 条记录。如何从上次获取的记录之后的记录开始获取接下来的 10 条记录?我是将第 1 页的最后一条记录的 ID 发送到视图,以便我可以相应地获取接下来的 10 条记录,还是有更好的方法来实现这一点?

Django 提供 Pagination 解决此类问题的工具。改变你的观点:

from django.core.paginator import Paginator

def fetchtExperts(request):
    experts = Experts.objects.exclude(client_assigned=None).values('id', 'name', 'age').order_by('qualification')
    paginator = Paginator(experts, 10) # Show 10 contacts per page

    page = request.GET.get('page')
    experts = paginator.get_page(page)
    return render(request, 'list.html', {'experts': experts})

使用此方法,您需要将页码作为 GET 参数传递:http://mypage.com/view?page=1