django-sqlpaginator jest aplikacja Django, że ma podział na strony i zamawiania za pomocą surowego SQL w modelu.
instalacji
Aby zainstalować z PyPI
pip zainstalować django-sqlpaginator
Aby uzyskać najnowsze (i prawdopodobnie mało stabilnej wersji) od git
pip install git + git: //github.com/bulkan/django-sqlpaginator.git
Należy również zainstalować sqlparser
pip install git + git: //github.com/andialbrecht/sqlparse.git
W settings.py
& Nbsp; INSTALLED_APPS = (
& Nbsp; ...
& Nbsp; "sqlpaginator",
& Nbsp; ...
& Nbsp;)
I tyle !!
Zastosowanie
Prawie takie same jak django.core.pagination.Paginator
Jeśli masz następujące modele
& Nbsp; klasa albumu (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; klasa Artysta (models.Model):
& Nbsp; artistid = models.IntegerField (primary_key = True, db_column = u'ArtistId ")
& Nbsp; name = models.TextField (db_column = u'Name ", puste = True)
i chcesz paginate na Albums, a następnie wewnątrz widzenia;
& Nbsp; z importu sqlpaginator.paginator SqlPaginator
& Nbsp; z modeli importować Album
& Nbsp; def get_albums (wniosek, strona = 1):
& Nbsp; sql = "select * from% s"% Album._meta.db_table
& Nbsp; paginator = SqlPaginator (sql, albumu, page = strona, order_by = "title")
& Nbsp; spróbuj:
& Nbsp; albumy = paginator.page (strona)
& Nbsp; z wyjątkiem PageNotAnInteger:
& Nbsp; # Jeśli strona nie jest liczbą całkowitą, dostarczyć pierwszą stronę.
& Nbsp; albumy = paginator.page (1)
& Nbsp; z wyjątkiem EmptyPage:
& Nbsp; # Jeśli strona jest poza zakresem (np 9999), dostarczyć ostatnią stronę wyników.
& Nbsp; albumy = paginator.page (paginator.num_pages)
& Nbsp; return render_to_response ("albums_list.html '{' albumy ': albumy})
W albums_list.html szablonu
& Nbsp; {% dla albumu w albumy%}
& Nbsp; {# Każdy "Album" jest model obiektu albumu. #}
& Nbsp; {{album.title | górna}}
& Nbsp; {% endfor%}
& Nbsp;
& Nbsp;
& Nbsp; {% jeśli albums.has_previous%}
& Nbsp; <"? Strona = {{albums.previous_page_number}}" href => poprzedni >
& Nbsp; {% endif%}
& Nbsp;
& Nbsp; Strona {{}} z albums.number {{albums.paginator.num_pages}}.
& Nbsp;
& Nbsp; {% jeśli albums.has_next%}
& Nbsp; <"? Strona = {{albums.next_page_number}}" href => obok >
& Nbsp; {% endif%}
& Nbsp;
& Nbsp;
Wymagania :
- Python
- Django
Komentarze nie znaleziono