django-sqlpaginator este o aplicatie Django care face paginare și ordonare folosind SQL brut pe un model.
Instalare
Pentru a instala de la pypi
Pip instala django-sqlpaginator
Pentru a obține cele mai recente (și, eventual, non stabil versiunea) de la git
PIP instala git + git: //github.com/bulkan/django-sqlpaginator.git
De asemenea, trebuie să instalați sqlparser
PIP instala git + git: //github.com/andialbrecht/sqlparse.git
În settings.py
& Nbsp; INSTALLED_APPS = (
& Nbsp; ...
& Nbsp; "sqlpaginator",
& Nbsp; ...
& Nbsp;)
Asta e !!
Utilizare
Destul de mult la fel ca django.core.pagination.Paginator
Dacă aveți următoarele modele
& Nbsp; clasă 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; clasă Artist (models.Model):
& Nbsp; artistid = models.IntegerField (primary_key = True, db_column = u'ArtistId ')
& Nbsp; name = models.TextField (db_column = u'Name ', gol = True)
si doriti sa paginate pe Albume, apoi în interiorul vedere;
& Nbsp; de la SqlPaginator sqlpaginator.paginator import
& Nbsp; de la modele de import album
& Nbsp; get_albums definiție (cerere, pagina = 1):
& Nbsp; SQL = "* selectați din% s"% Album._meta.db_table
& Nbsp; paginator = SqlPaginator (SQL, Album, pagina = pagina, order_by = 'title')
& Nbsp; încercați:
& Nbsp; albume = paginator.page (pagina)
& Nbsp; cu excepția PageNotAnInteger:
& Nbsp; # Dacă pagina nu este un număr întreg, livra prima pagină.
& Nbsp; albume = paginator.page (1)
& Nbsp; cu excepția EmptyPage:
& Nbsp; # Dacă pagina este în afara domeniului (de exemplu, 9999), livra ultima pagina a rezultatelor.
& Nbsp; albume = paginator.page (paginator.num_pages)
& Nbsp; render_to_response retur ("albums_list.html", {"albume": albume})
În albums_list.html șablon
& Nbsp; {% pentru album în albume%}
& Nbsp; {# Fiecare "album" este un obiect model de album. #}
& Nbsp; {{album.title | sus}}
& Nbsp; {% endfor%}
& Nbsp;
& Nbsp;
& Nbsp; {% dacă albums.has_previous%}
& Nbsp; <"? Pagina = {{}} albums.previous_page_number" a href => precedent
& Nbsp; {% endif%}
& Nbsp;
& Nbsp; Page {{}} albums.number de {{albums.paginator.num_pages}}.
& Nbsp;
& Nbsp; {% dacă albums.has_next%}
& Nbsp; <"? Pagina = {{}} albums.next_page_number" a href => următor
& Nbsp; {% endif%}
& Nbsp;
& Nbsp;
Cerințe :
- Python
- Django
Comentariile nu a fost găsit