【发布时间】:2011-06-04 05:54:15
【问题描述】:
问题
我需要在 Django 模板中使用 jQuery 进行 Ajax 分页。
情况
我的模板中有以下代码:
<script type="text/javascript">
$(document).ready(function() {
$("#next-page").click(function() {
var page = {{ vms.next_page_number }};
$("#vms").html(' ').load (
'{% url virtualmachine-list %}?page=' + q );
});
});
</script>
[code omitted]
<table>
<thead>
[code omitted]
</thead>
<tbody id="vms">
{% for vm in vms.object_list %}
[code omitted]
{% endfor %}
</tbody>
</table>
[code omitted]
{% if vms.has_next %}
<!--<a href="?page={{ vms.next_page_number }}" id="next-page">Next</a>-->
<a href="#" id="next-page">Next</a>
{% endif %}
</span>
我的看法:
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),
)
结论
所以,每当我按“下一步”时,它实际上会执行 Ajax 请求,但数据不会呈现在表中。
使用 django.core.paginator 进行分页,如果可能的话,我真的很想坚持下去。
您能看到代码中缺少什么/错误吗?
【问题讨论】:
标签: jquery ajax django django-templates