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部分:
应该是request.is_ajax()
, is_ajax()
是一个方法!