django-sqlpaginator er en Django app som gjør paginering og bestilling ved hjelp av rå SQL på en modell.
Installasjon
Slik installerer du fra PyPI
PIP installere django-sqlpaginator
For å få den nyeste (og muligens ikke stabile versjon) fra git
PIP installere git + git: //github.com/bulkan/django-sqlpaginator.git
Du må også installere sqlparser
PIP installere git + git: //github.com/andialbrecht/sqlparse.git
I settings.py
& Nbsp; INSTALLED_APPS = (
& Nbsp; ...
& Nbsp; 'sqlpaginator',
& Nbsp; ...
& Nbsp;)
Det er det !!
Bruk
Ganske mye samme som django.core.pagination.Paginator
Hvis du har følgende modeller
& Nbsp; klasse Album (models.Model):
& Nbsp; ALBUMID = models.IntegerField (primary_key = True, db_column = u'AlbumId ')
& Nbsp; title = models.TextField (db_column = u'Title ')
& Nbsp; artistid = models.IntegerField (db_column = u'ArtistId ')
& Nbsp; klasse Artist (models.Model):
& Nbsp; artistid = models.IntegerField (primary_key = True, db_column = u'ArtistId ')
& Nbsp; name = models.TextField (db_column = u'Name ', blank = True)
og du vil nummereres på Albums, deretter inne i en view;
& Nbsp; fra sqlpaginator.paginator import SqlPaginator
& Nbsp; fra modeller importere Album
& Nbsp; def get_albums (forespørsel, page = 1):
& Nbsp; sql = "select * fra% s"% Album._meta.db_table
& Nbsp; paginator = SqlPaginator (sql, Album, side = side, order_by = 'tittel')
& Nbsp; prøve:
& Nbsp; album = paginator.page (side)
& Nbsp; unntatt PageNotAnInteger:
& Nbsp; # Hvis siden ikke er et heltall, levere første side.
& Nbsp; album = paginator.page (1)
& Nbsp; unntatt EmptyPage:
& Nbsp; # Hvis siden er utenfor rekkevidde (f.eks 9999), levere siste side av resultater.
& Nbsp; album = paginator.page (paginator.num_pages)
& Nbsp; retur render_to_response ('albums_list.html', {'album': album})
I malen albums_list.html
& Nbsp; {% for album i album%}
& Nbsp; {# Hver "album" er et album modell objekt. #}
& Nbsp; {{album.title | øvre}}
& Nbsp; {% EndFor%}
& Nbsp;
& Nbsp;
& Nbsp; {% hvis albums.has_previous%}
& Nbsp; <"? Side = {{albums.previous_page_number}}" a href => forrige
& Nbsp; {% endif%}
& Nbsp;
& Nbsp; Page {{albums.number}} av {{albums.paginator.num_pages}}.
& Nbsp;
& Nbsp; {% hvis albums.has_next%}
& Nbsp; <"? Side = {{albums.next_page_number}}" a href => neste
& Nbsp; {% endif%}
& Nbsp;
& Nbsp;
Krav :
- Python
- Django
Kommentarer ikke funnet