django-sqlpaginator er en Django app, der gør paginering og bestilling ved hjælp af rå SQL på en model.
Installation
For at installere fra pypi
pip installere django-sqlpaginator
For at få den nyeste (og muligvis ikke stabile version) fra git
pip installere git + git: //github.com/bulkan/django-sqlpaginator.git
Du skal også installere sqlparser
pip installere git + git: //github.com/andialbrecht/sqlparse.git
I settings.py
& Nbsp; INSTALLED_APPS = (
& Nbsp; ...
& Nbsp; "sqlpaginator«,
& Nbsp; ...
& Nbsp;)
Thats it !!
Anvendelse
Temmelig meget 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 ønsker at sideinddele på Albums, så inde i en visning;
& Nbsp; fra sqlpaginator.paginator import SqlPaginator
& Nbsp; fra modeller importerer Album
& Nbsp; def get_albums (anmodning page = 1):
& Nbsp; sql = "select * fra% s"% Album._meta.db_table
& Nbsp; paginator = SqlPaginator (SQL, Album, side = side, order_by = 'titel')
& Nbsp; prøv:
& Nbsp; album = paginator.page (side)
& Nbsp; undtagen PageNotAnInteger:
& Nbsp; # Hvis siden ikke er et heltal, leverer første side.
& Nbsp; album = paginator.page (1)
& Nbsp; undtagen EmptyPage:
& Nbsp; # Hvis side er uden for rækkevidde (f.eks 9999), leverer sidste side af resultater.
& Nbsp; album = paginator.page (paginator.num_pages)
& Nbsp; tilbagevenden render_to_response (»albums_list.html", {albummer «: albummer})
I skabelonen albums_list.html
& Nbsp; {% for album i albums%}
& Nbsp; {# Hver "album" er en Album model objekt. #}
& Nbsp; {{album.title | øvre}}
& Nbsp; {% EndFor%}
& Nbsp;
& Nbsp;
& Nbsp; {%, hvis albums.has_previous%}
& Nbsp; <"? Page = {{albums.previous_page_number}}" a href => tidligere
& Nbsp; {% endif%}
& Nbsp;
& Nbsp; Page {{albums.number}} af {{albums.paginator.num_pages}}.
& Nbsp;
& Nbsp; {%, hvis albums.has_next%}
& Nbsp; <"? Page = {{albums.next_page_number}}" a href => næste
& Nbsp; {% endif%}
& Nbsp;
& Nbsp;
Krav :
- Python
- Django
Kommentarer ikke fundet