我正在尝试过滤sqlalchemy查询。
我的表定义如下:
class Classroom(db.Model, Entity):
classroom_id = db.Column('classroom_id', db.Integer, primary_key=True)
teachers = db.relationship(
"User",
secondary=lambda: classroom_teacher_table
)
其中User是另一个表(具有user_id列)。
我想查询教室,找到教师列表中第一位教师具有特定user_id的所有教室。
我可以查询教室,找到教师名单中任何教师都有这样一个特定user_id的所有教室:
tclassrooms = Classroom.query
tclassrooms = tclassrooms.filter(Classroom.teachers.any(user_id=id)).all()
但我无法弄清楚如何只检查列表中的第一位老师。
我试过了:
tclassrooms = tclassrooms.filter(Classroom.teachers[0]['user_id']==id).all()
以及其中的一系列变体,但总是出现像
这样的错误Traceback (most recent call last):
File "/usr/local/lib/python2.7/site-packages/sqlalchemy/sql/operators.py", line 346, in __getitem__
return self.operate(getitem, index)
File "/usr/local/lib/python2.7/site-packages/sqlalchemy/orm/attributes.py", line 175, in operate
return op(self.comparator, *other, **kwargs)
File "/usr/local/lib/python2.7/site-packages/sqlalchemy/sql/operators.py", line 346, in __getitem__
return self.operate(getitem, index)
File "/usr/local/lib/python2.7/site-packages/sqlalchemy/sql/operators.py", line 186, in operate
raise NotImplementedError(str(op))
有什么想法吗?