flask开中发遇到AttributeError: 'BaseQuery' object has no attribute 'paginater'

 Pala   2017-07-05 22:37   129 人阅读  0 条评论

flask开中发遇到builtins.AttributeError:

AttributeError: 'BaseQuery' object has no attribute 'paginater'

代码:

@main.route('/', methods=['GET', 'POST'])
def index():
    form = PostForm()
    if current_user.can(Permission.WRITE_ARTICLES) and \
            form.validate_on_submit():
        post = Post(body=form.body.data,
                    author=current_user._get_current_object())
        db.session.add(post)
        return redirect(url_for('.index'))
    # 页面内容分页
    # request.args 查询字符串,如果没有明确指定,默认渲染第一页
    # type=int  保证参数无法转换成整数事时,返回默认值
    page = request.args.get('page', 1, type=int)
    # pageinater() 显示某页中记录,第一个参数是页面,也是唯一必需的参数
    # per_page 指定每页显示的记录数量,默认显示20个记录,
    # per_page 的值从环境变量FLASK_POST_PER_PAGE中读取
    # error_out= False 如果设为True,如果请求的页面超出了范围,返回404错误,
    # 设为Fasle, 页数超出范围返回一个空列表
    pagination = Post.query.order_by(Post.timestamp.desc()).paginater(
        page, per_page=current_user.config['FLASK_POST_PER_PAGE'], error_out=False
    )
    posts = pagination.items
    return render_template('index.html', form=form, posts=posts,pagination=pagination)

错误原因是pagination = Post.query.order_by(Post.timestamp.desc()).paginater()中的paginater多了一个r.

正确写法:

    pagination = Post.query.order_by(Post.timestamp.desc()).paginate(
        page, per_page=current_user.config['FLASK_POST_PER_PAGE'], error_out=False
    )


本文地址:http://chenxm.cc/post/187.html
版权声明:本文为原创文章,版权归 Pala 所有,欢迎分享本文,转载请保留出处!

发表评论


表情

还没有留言,还不快点抢沙发?