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('&nbsp;').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?

InformationsquelleAutor Kenny Meyer | 2011-01-05