【问题标题】:Flask Paginate and Current_user烧瓶分页和 Current_user
【发布时间】:2021-11-15 00:40:42
【问题描述】:

我的代码需要帮助,我在会话中看不到 current_user 的分页客户端 代码查看:

@views.route('/', methods=['GET', 'POST'], defaults={"page": 1}) 
@views.route('/<int:page>', methods=['GET', 'POST'])
@login_required
def home(page):
    client = Client.query.paginate(page=page,per_page=3,error_out=False)

    return render_template("home.html", user=current_user, client=client)

代码模型:

class Client(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    first_name = db.Column(db.String(150))
    last_name = db.Column(db.String(150))
    phone = db.Column(db.String(150)) 
    email = db.Column(db.String(150))
    user_id = db.Column(db.Integer, db.ForeignKey('user.id'))


class User(db.Model, UserMixin):
    id = db.Column(db.Integer, primary_key=True)
    email = db.Column(db.String(150), unique=True)
    password = db.Column(db.String(150)) 
    first_name = db.Column(db.String(150))
    clients = db.relationship('Client')

代码html:

{% for client in user.clients.items %}

如果我将 html 代码更改为:

{% for client in client.items %}

它显示了所有用户的所有客户,我只想看到来自 current_user 的客户,需要帮助:(

【问题讨论】:

    标签: python-3.x flask


    【解决方案1】:

    您好,您需要过滤路由中的查询以仅获取属于当前用户的客户端,您可以通过以下方式执行此操作:

    client = Client.query.filter_by(user_id=current_user.id).paginate(page=page,per_page=3,error_out=False)
    

    我没有测试过这个,所以可能是一些拼写错误

    【讨论】:

    • 非常感谢!!这让我快疯了。现在我可以继续了
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-27
    • 2016-03-05
    • 1970-01-01
    • 2015-08-19
    • 1970-01-01
    • 2023-04-04
    相关资源
    最近更新 更多