Pull to refresh

Comments 4

а как правильнее реализовать циферную пагинацию типа
1 2 3… 99 последняя (как на неё кстати линк лучше просчитать, count / на колво отображаемых постов из конфига?)
и тд? пробегать в цикле has next затратно же?
п.с. в Питоне я пока только начал разбираться
Я думаю что можно использовать то же самое что описано в статье, только немножко переделать шаблон как-нибудь так:
<!-- posts is a Paginate object -->
{% for post in posts.items %}
    {% include 'post.html' %}
{% endfor %}
{% if posts.has_prev %}<a href="{{ url_for('user', nickname = user.nickname, page = posts.prev_num) }}"><< {{ page - 1 }}</a>{% endif %} 
... 
{% if posts.has_next %}<a href="{{ url_for('user', nickname = user.nickname, page = posts.next_num) }}">{{ page + 1}} >></a>{% endif %}
{% if page != max_page %} <a href="{{ url_for('user', nickname = user.nickname, page = max_page) }}"> {{ max_page}}</a>{% endif %}


И вьюху изменить:
@app.route('/user/<nickname>')
@app.route('/user/<nickname>/<int:page>')
@login_required
def user(nickname, page = 1):
    user = User.query.filter_by(nickname = nickname).first()
    if user == None:
        flash('User ' + nickname + ' not found.')
        return redirect(url_for('index'))
    posts = user.posts.paginate(page, POSTS_PER_PAGE, False)
max_page = User.query.all().count() / POSTS_PER_PAGE + 1    
return render_template('user.html',
        user = user,
        posts = posts,
        max_page = max_page,)


Только не забыть обработать в шаблоне граничные состояния, когда предыдущей или следующей страницы нет.
Спасибо! Как дойду до этого обязательно попробую такой вариант!
Sign up to leave a comment.

Articles