Как перейти на предыдущую страницу с помощью курсоров ndb?

Я не могу добраться до «предыдущей страницы» в пейджинге ndb.

Я проверилдокументация а также это похожевопрос здесь безуспешно.

 def show_feedback(kind, bookmark=None):
    """Renders returned feedback."""
    cursor = None    
    more_p= None
    if bookmark:
        cursor = Cursor(urlsafe=bookmark)

    q = Feedback.query()
    q_forward = q.filter(Feedback.kind==Feedback.KINDS[kind]).order(-Feedback.pub_date)
    q_reverse = q.filter(Feedback.kind==Feedback.KINDS[kind]).order(Feedback.pub_date)

    feedbacks, next_cursor, more = q_forward.fetch_page(app.config['FEEDBACK_PER_PAGE'], start_cursor=cursor)
    if cursor:
        rev_cursor = cursor.reversed()
        feedbacks2, prev_cursor, more_p = q_reverse.fetch_page(app.config['FEEDBACK_PER_PAGE'], start_cursor=rev_cursor)

    next_bookmark = None
    prev_bookmark = None
    if more and next_cursor:
        next_bookmark = next_cursor.urlsafe()
    if more_p and prev_cursor:
        prev_bookmark = prev_cursor.urlsafe()
    return render_template_f11('show_feedback.html', kind=kind, feedbacks=feedbacks, next_bookmark=next_bookmark, prev_bookmark=prev_bookmark)

HTML:

  {% if prev_bookmark %}
        <a href="{{ url_for(request.endpoint, bookmark=prev_bookmark) }}">Previous</a>
  {% endif %}
  {% if next_bookmark %}
    <a href="{{ url_for(request.endpoint, bookmark=next_bookmark) }}">Next</a>
  {% endif %}

Я могу корректно пересылать страницы до конца. Но я не могу вернуться назад до последней страницы, и даже тогда я не могу вернуться назад до первой страницы.

Что мне не хватает, пожалуйста?

ОБНОВИТЬ:

Изменен код с предложениями Фейсала. Это работает лучше, я должен признать. Но все же пейджинг не работает правильно:

У меня 7 записей. Значение PAGE_SIZE в конфигурации равно 3. Следовательно, мы получаем три страницы:

При нажатии Next я получаю 7,6,5 -> 4,3,2 -> 1 Perfect. Теперь при нажатии на предыдущую: 1 -> 3,4,5 (?) -> 5,6,7 (?)

Спасибо за вашу помощь

def show_feedback(kind, bookmark=None):
    """Renders returned feedback."""
    is_prev = request.args.get('prev', False)
    cursor = None        
    if bookmark:
        cursor = Cursor(urlsafe=bookmark)

    q = Feedback.query()
    q_forward = q.filter(Feedback.kind==Feedback.KINDS[kind]).order(-Feedback.pub_date)
    q_reverse = q.filter(Feedback.kind==Feedback.KINDS[kind]).order(Feedback.pub_date)

    qry = q_reverse if is_prev else q_forward

    feedbacks, cursor, more = qry.fetch_page(app.config['FEEDBACK_PER_PAGE'], start_cursor=cursor)

    if is_prev:
        prev_bookmark = cursor.reversed().urlsafe() if more else None
        next_bookmark = bookmark
    else:
        prev_bookmark = bookmark
        next_bookmark = cursor.urlsafe() if more else None
    return render_template_f11('show_feedback.html', kind=kind, feedbacks=feedbacks, next_bookmark=next_bookmark, prev_bookmark=prev_bookmark)

ОБНОВЛЕНИЕ 2:

Кажется, теперь он почти работает с reverse ().

7,6,5 -> далее -> 4,3,2 -> далее -> 1

1 -> предыдущая -> 2,3,4 -> 5,6,7 (Заказ не более поздний, последняя дата - сначала)

Ответы на вопрос(2)

Ваш ответ на вопрос