Django-sqlpaginator є додаток Django, що робить розбивку на сторінки і порядок використання сировини SQL на моделі.
Установка
Для установки з PyPI
пункт встановити Django-sqlpaginator
Щоб отримати останню (і, можливо, не стабільна версія) від Git
пункт встановити Git + Git: //github.com/bulkan/django-sqlpaginator.git
Ви також повинні встановити sqlparser
пункт встановити Git + Git: //github.com/andialbrecht/sqlparse.git
У settings.py
І NBSP; INSTALLED_APPS = (
І NBSP; ...
І NBSP; 'sqlpaginator',
І NBSP; ...
І NBSP;)
Саме так !!
Використання
Досить багато само, як django.core.pagination.Paginator
Якщо у вас є такі моделі
І NBSP; Альбом класу (models.Model):
І NBSP; ALBUMID = models.IntegerField (primary_key = True, db_column = u'AlbumId ')
І NBSP; назва = models.TextField (db_column = u'Title ')
І NBSP; artistid = models.IntegerField (db_column = u'ArtistId ')
І NBSP; класного художника (models.Model):
І NBSP; artistid = models.IntegerField (primary_key = True, db_column = u'ArtistId ')
І NBSP; ім'я = models.TextField (db_column = u'Name ", порожній = True)
і ви хочете, щоб розбивати на сторінки по Альбоми, то всередині цілях;
І NBSP; від імпорту sqlpaginator.paginator SqlPaginator
І NBSP; від моделей імпортувати Альбом
І NBSP; чіткості get_albums (запит, стр = 1):
І NBSP; SQL = "SELECT * FROM% S"% Album._meta.db_table
І NBSP; Метранпаж = SqlPaginator (SQL, альбом, сторінка = сторінка, order_by = 'Назва')
І NBSP; знайти:
І NBSP; альбомів = paginator.page (сторінка)
І NBSP; крім PageNotAnInteger:
І NBSP; # Якщо сторінка не ціле число, доставити першу сторінку.
І NBSP; альбомів = paginator.page (1)
І NBSP; крім EmptyPage:
І NBSP; # Якщо сторінка знаходиться поза діапазону (наприклад, 9999), доставити останню сторінку результатів.
І NBSP; альбомів = paginator.page (paginator.num_pages)
І NBSP; повернення render_to_response ('albums_list.html', {"Альбоми": альбоми})
У шаблоні albums_list.html
І NBSP; {% для альбому Альбоми%}
І NBSP; {# Кожен "Альбом", об'єктна модель альбом. #}
І NBSP; {{album.title | верхня}} <бр />
І NBSP; {% ENDFOR%}
І NBSP;
І NBSP;
І NBSP; {%, якщо albums.has_previous%}
І NBSP; <"Сторінка = {{albums.previous_page_number}}" HREF => Попередня >
І NBSP; {% ENDIF%}
І NBSP;
І NBSP; Page {{albums.number}} з {{albums.paginator.num_pages}}.
І NBSP;
І NBSP; {%, якщо albums.has_next%}
І NBSP; <"Сторінка = {{albums.next_page_number}}" HREF => Далі >
І NBSP; {% ENDIF%}
І NBSP;
І NBSP;
Вимоги
- Python
- Django
Коментар не знайдено