Išspręsta: django listview

Pagrindinė sąrašo vaizdų problema yra ta, kad juos sunku naudoti ir jie gali būti painūs.

 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>

Šis kodas yra klasėmis pagrįstas sąrašo rodinys su puslapiais. Pirmosios keturios eilutės apibrėžia klasę, naudotiną modelį, naudotiną šabloną ir naudotinus konteksto duomenis. Kitos keturios eilutės apibrėžia gavimo metodą ir atsakymą. Paskutinės keturios eilutės apibrėžia get_context_data metodą ir pateikia kontekstinius duomenis.

Kas yra sąrašo vaizdas

Sąrašo vaizdas yra „Django“ valdiklis, kuriame rodomas elementų sąrašas.

Susijusios naujienos:

Palikite komentarą