Я пытаюсь создать механизм поискового вызова для страницы через запрос. Переход вперед не является проблемой. Однако переход на предыдущую страницу является нетривиальным.App Engine datastore paging - предыдущая страница
То, что я до сих пор это (почему у меня такое ощущение, что это должно быть проще?):
cursor_urlsafe = self.request.get('cursor', None)
rev = bool(self.request.get('rev', None))
cursor = ndb.Cursor(urlsafe=cursor_urlsafe)
if rev:
next_query = Shot.query(Shot.schedule_key == schedule.key).order(Shot.date_created)
cursor = cursor.reversed()
else:
next_query = Shot.query(Shot.schedule_key == schedule.key).order(-Shot.date_created)
shots, next_cursor, more = next_query.fetch_page(PAGE_LENGTH, start_cursor=cursor)
if rev:
shots.sort(key=lambda x: -x.date_created_epoch)
next_cursor_url_safe = next_cursor.urlsafe() if next_cursor else None
template_params = {
'shots': shots,
'next_cursor': next_cursor_url_safe,
'prev_cursor': next_cursor_url_safe if cursor_urlsafe else None
}
и на стороне клиента:
<a href="/schedule/{{ s.id }}?cursor={{ prev_cursor }}&rev=true">Previous</a><br>
<a href="/schedule/{{ s.id }}?cursor={{ next_cursor }}">Next</a>
Этот вид работ , Единственная проблема заключается в том, что когда пользователь «меняет направление» (страницы назад), он возвращает его на страницу, на которой он снова включен, и только после другого щелчка на предыдущем идет на предыдущую страницу.
Так что, если щелкнуть, «Предыдущий» и «Далее», я остаюсь на одной странице все время.
Просьба сообщить.
Исправьте меня, если я ошибаюсь, но мне кажется, что основной проект терпит неудачу, если мне нужно «принять стратегии», чтобы реализовать простую функциональность подкачки: ( – MeLight
Вы имеете дело с средой без SQL. Я бы воспользовался «недостатком дизайна» с помощью google. Однако обе ссылки предоставляют вам решение. Вам нужно выйти за пределы мира SQL и понять, что происходит Посмотрите на DynamoDB на AWS. Подобные стратегии необходимы для обратного разбиения на страницы. См. http://stackoverflow.com/questions/14396346/pagination-in-dynamodb –