django.de base.paginator pagination Ajax avec jQuery
Problème
J'ai besoin de pagination Ajax à l'aide de jQuery dans un Django template.
Situation
J'ai le code suivant dans mon template:
<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>
et de mon point de vue:
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),
)
Conclusion
Donc, chaque fois que j'appuie sur "Suivant", c'est en fait une requête Ajax, mais les données ne se rendait dans le tableau.
Pour la pagination de django.de base.paginator est utilisé, et je voudrais vraiment rester avec elle, lorsque cela est possible.
Pouvez-vous voir ce qui est manquant/de mal avec le code?
Vous devez vous connecter pour publier un commentaire.
Je n'ai pas trouver l'erreur, mais je vous montrer ci-dessous comment j'ai résolu cette tâche. Je pense que vous pouvez l'adapter facilement à vos besoins.
L'ajax de jquery partie:
Le modèle de partie html:
Il devrait être
request.is_ajax()
,is_ajax()
est une méthode de!