使用SQLAlchemy查询与其他实例相关的实例

2024-04-24 15:29:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我的应用程序有UserProperty模型。我最初使用的是peeweeorm,但现在改用SQLAlchemy。我想选择当前用户列出的所有属性并在模板中显示它们。在Peewee中,迭代以下查询有效,但是我在SQLAlchemy中得到了一个ProgrammingError。如何获取与SQLAlchemy中另一个实例相关的实例?在

my_properties = Property.query.filter_by(listed_by=current_user)
^{pr2}$
class Property(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    listed_by = db.Column(db.Integer, db.ForeignKey('users.id'))

Tags: 实例用户模型id应用程序dbby属性
1条回答
网友
1楼 · 发布于 2024-04-24 15:29:01

在Peewee中,外键字段不会将实际的键与它所表示的东西分开。在SQLAlchemy中,外键列只是键,关系用于表示它所指向的对象。在

listed_by是一个整数。current_userUser对象的代理。SQLAlchemy不知道integer == User是什么意思。在

创建一个与用户对象的关系并对其进行筛选。在

class Property(db.Model):
    id = db.Column(db.Integer, primary_key=True
    listed_by_id = db.Column(db.ForeignKey(User.id))
    listed_by = db.relationship(User, foreign_keys=[listed_by_id])
^{pr2}$

从技术上讲,您还可以通过传递用户的id来过滤id字段,尽管定义关系通常更有用。在

Property.query.filter_by(listed_by_id=current_user.id)

相关问题 更多 >