我正在使用Flask SQLAlchemy来查询我的Postgres数据库。在
我正在尝试使用以下查询查询标题建议:
res = Title.query.filter(Titles.name.ilike(searchstring)).limit(20)
到目前为止还不错。在
现在我想按每个Title对象拥有的“订阅者”数量来排序结果。在
我知道下面的问题:SQLAlchemy ordering by count on a many to many relationship但是它的解决方案对我来说不起作用。在
我收到以下错误:
^{pr2}$(Publisher与标题模型有一对多关系)
我知道答案与子查询有关
下面是我的两个模型的简化示例。在
# Many-to-Many relationship for user and titles
titles_users = db.Table('titles_users',
db.Column('user_id', db.Integer, db.ForeignKey('users.id')),
db.Column('title_id', db.Integer, db.ForeignKey('titles.id'))
)
class User(db.Model, UserMixin):
__tablename__ = 'users'
# ids
id = db.Column(db.Integer, primary_key=True)
# Attributes
email = db.Column(db.String(255), unique=True)
full_name = db.Column(db.String(255))
pull_list = db.relationship(
'Title',
secondary=titles_users,
backref=db.backref('users', lazy='dynamic'),
lazy='joined'
)
class Title(db.Model):
__tablename__ = 'titles'
#: IDs
id = db.Column(db.Integer(), primary_key=True)
#: Attributes
name = db.Column(db.String(255))
下面的代码适用于您描述的模型:
但是,您的错误包含一些其他数据,如
publisher
或类似的数据。所以,如果以上没有帮助,你应该在你的问题中添加更多的信息。在相关问题 更多 >
编程相关推荐