2017-04-05 14 views
1

ポニーORMによるページネーションのベストプラクティスはありますか?ポニーとのページングORM

私は他の人がこれらのhas_nexthas_previousヘルパーの方法を持っているのを見ていますが、私は自分でポニーです。

# Jinja helpers for pagination 
def next_page(current, max_page): 
    if current >= max_page: 
     return False 
    else: 
     return current + 1 


def prev_page(current, max_page): 
    if current < 2: 
     return False 
    else: 
     return current - 1 

max_page次のように計算されます:

はこれまでのところ、これは私が神社ヘルパーのカップルは、持っているものであるmath.ceil(MyTable.select().count()/PAGE_SIZE)

しかし、少し退屈な取得、あなたは現在のページの送信を維持する必要がありますし、マックスページ

{% if maxpage > 1 %} 
    {% if prev_page(page, maxpage) %} 
    <a href="{{ url_for('index', pagenum=prev_page(page, maxpage)) }}"><</a> 
    {% endif %} 

    {% if next_page(page, maxpage) %} 
    <a href="{{ url_for('index', pagenum=next_page(page, maxpage)) }}">></a> 
    {% endif %} 
{% endif %} 

何か不足していますか?もっと良い方法?

答えて

0

あなたは、ページネーションを照会することができます

q = models.select(d for d in models.Thingy) 
page = 1 
count = q.count() 
results_of_first_page = q.page(page, 20) 
pages = int(count/20) 
if pages > 20: 
    pages = 20 
関連する問題