gpt4 book ai didi

flask - 为什么我在 Flask 中得到 'InstrumentedList' 对象没有属性 'paginate' filter_by?

转载 作者:行者123 更新时间:2023-12-03 17:14:59 26 4
gpt4 key购买 nike

我想为客户端的 subscribed_users 分页,但我收到一条错误消息:

cl = Client.query.filter_by(family='John').first()
cl.subscribed_users.paginate()

AttributeError: 'InstrumentedList' 对象没有属性 'paginate'

这是我的 models.py

subscribers = db.Table(
'clients_subscribed',
db.Column('client_id', db.Integer, db.ForeignKey('client.id', ondelete='CASCADE')),
db.Column('user_id', db.Integer, db.ForeignKey('user.id', ondelete='CASCADE'))
)

class Client(db.Model):
subscribed_users = db.relationship(
'User',
secondary=subscribers,
backref=db.backref('user', passive_deletes=True, lazy='dynamic')
)

最佳答案

paginate() 是在 BaseQuery 上定义的,它是 sqlalchemyQuery 的子类。当您在 flask-sqlalchemy 模型上执行查询时,paginate 可用但 subscribed_users 不是 flask-sqlalchemy 模型,因此您不能调用 paginate因为它没有。解决方案是将 db.Table 更改为如下类:

class Subscribers(db.Model):
client_id = db.Column(db.Integer, db.ForeignKey('client.id'), primary_key=True))
user_id = db.Column(db.Integer, db.ForeignKey('user.id'), primary_key=True))

class Client(db.Model):
subscribed_users = db.relationship(
...
secondary=Subscribers,
...

关于flask - 为什么我在 Flask 中得到 'InstrumentedList' 对象没有属性 'paginate' filter_by?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46862900/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com