django.core.paginator Ajax与jQuery的分页

问题

我需要在Django模板中使用jQuery进行Ajax分页。

情况

我的模板中有以下代码:

 $(document).ready(function() { $("#next-page").click(function() { var page = {{ vms.next_page_number }}; $("#vms").html(' ').load ( '{% url virtualmachine-list %}?page=' + q ); }); });  [code omitted]  [code omitted]  {% for vm in vms.object_list %} [code omitted] {% endfor %} 
[code omitted] {% if vms.has_next %} <!--Next--> Next {% endif %}

和我的观点:

 def list_(request): vms = VirtualMachine.objects.all() paginator = Paginator(vms, 10) page = 1 if request.is_ajax(): query = request.GET.get('page') if query is not None: page = query try: vms = paginator.page(page) except (EmptyPage, InvalidPage): vms = paginator.page(paginator.num_pages) return render_to_response('virtual_machine/list.html', { 'vms': vms, }, context_instance=RequestContext(request), ) 

结论

因此,每当我按下“Next”时,它实际上都会执行Ajax请求,但数据不会在表中呈现。

对于分页,使用了django.core.paginator,如果可能的话,我真的很想坚持下去。

你能看到代码遗漏/错误的原因吗?

我没有找到错误,但我在下面告诉你我是如何解决这个问题的。 我认为您可以轻松地根据您的需求进行调整。

jquery ajax部分:

  

模板html部分:

  
{% table_header headers %} ....

应该是request.is_ajax()is_ajax()是一个方法!