Diselesaikan: Django listview

Masalah utama dengan tampilan daftar adalah sulit digunakan dan dapat membingungkan.

 with pagination

I am trying to create a listview with pagination in Django. I have tried the following code but it is not working:
<code>class MyListView(ListView):

    model = MyModel
    template_name = 'my_template.html'

    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)

        context['page'] = self.request.GET.get('page')

        return context

    def get(self, request, *args, **kwargs):
        response = super().get(request, *args, **kwargs)

        try:
            page = int(response.context['page']) - 1
            if page &lt; 0: page = 0  # first page is 1 not 0! (paginator bug?)
            response.context['previous'] = str(page) if page &gt; 0 else None  # None for first page! (paginator bug?)
            response.context['next']     = str(page + 2) if len(response.context['object_list']) == 10 else None  # None for last page! (paginator bug?)

        except KeyError: pass  # no 'page' in the context... means we're on the first one! (no previous!) or last one! (no next!) or something went wrong... just ignore it and don't add anything to the context then...

        return response    
</code>

Kode ini adalah tampilan berbasis kelas untuk tampilan daftar dengan paginasi. Empat baris pertama mendefinisikan kelas, model yang akan digunakan, template yang akan digunakan, dan data konteks yang akan digunakan. Empat baris berikutnya menentukan metode get dan respons. Empat baris terakhir menentukan metode get_context_data dan mengembalikan data konteks.

Apa itu tampilan daftar

Tampilan daftar adalah widget di Django yang menampilkan daftar item.

Pos terkait:

Tinggalkan Komentar