Wie man Django-Template-Code beim AJAX-Aufruf rendert

Ich habe eine Ansicht, die ein paginiertes Objekt (in einem Abfragesatz) an eine Vorlage sendet, die ich in der Vorlage als Tabelle rendere. Ich versuche, auf eine Seitenzahl in der Paginierungsleiste der Vorlage zu klicken. Es sollte ein Ajax-Aufruf erfolgen, um eine Paginierungsausgabe für diese Seitenzahl zu erhalten und den Inhalt der Tabelle dynamisch damit zu aktualisieren.

Aussicht

def accounts(request):
    #Including only necessary part
    accounts_list = Accounts.objects.all()
    paginator = Paginator(accounts_list, 25)
    page = request.GET.get('page')
    try:
        accounts = paginator.page(page)
    except PageNotAnInteger:
        # If page is not an integer, deliver first page.
        accounts = paginator.page(1)
    except EmptyPage:
        # If page is out of range, deliver last page of results.
        accounts = paginator.page(paginator.num_pages)

    context['accounts'] = accounts
    return render(request, template, context)

Template lädt dies als:

{% if accounts %}
<table id="acc">
    <tr>
        <th>Field 1</th>
        ...
        <th>Field N</th>
    </tr>
    {% for item in accounts %}
    <tr> 
        <td>{{ item.field1 }}</td>
        ...<!-- Some complex logic with template tags too in here -->
        <td>{{ item.fieldN }}</td>
    </tr>
    {% endfor %}
</table>
{% endif %}

etzt für Paginierungsleiste verwende ich Bootpags Bibliothek, und ich kann Sachen rendern als:

$('.pagination_top').bootpag({
   /*bootpag logic here */
}).on("page", function(event, num){
    //$.ajax loading here where I can update the table div with new output 
    //or make the table div "template code" reload without reloading page
}

Tut mir leid, dass ich nicht viel von dem gezeigt habe, was ich in einem Ajax-Teil ausprobiert habe, da ich nicht weiß, wie man eine Vorlage erstellt, um neue Konten wiederherzustellen, die ohne erneutes Laden der Seite zurückgegeben werden.

Die einzige schmutzige Lösung, an die ich denken kann, ist, mein gesamtes HTML in der Ansicht zu generieren und dann das HTML des Tabellendivs mit neuem zurückgegebenem HTML-Ajax zu aktualisieren?

Was wäre der einfache Weg zu sagen, um die Tabelle div mit Hilfe der Template-Rendering-Logik neu zu laden, ohne die Seite neu zu laden? Kann dies erreicht werden, indem ein Tabellenteil zu einer separaten Vorlage gemacht und Vorlagen hinzugefügt / erweitert werden?

Bitte beachte, das Ich kann keine Methode verwenden, um alle Daten in einer Vorlage abzurufen und dann die Paginierungslogik einiger jquery / js libaray zu verwenden, da die vollständigen Daten relativ groß sind.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage