在sqlform中过滤下拉列表,'Query'对象不可调用

时间:2014-08-01 07:36:04

标签: mysql web2py

我想插入一个包含两个字段的表单:coursename,teacher_id(引用auth_user),但是teacher_id字段显示auth_user中的所有id,我只希望用户的id whoes role = teacher显示在dropdown.as all中用户在同一个表中(auth_user) 这就是我所做的:但它显示错误:'Query'对象不可调用。

query=(db.auth_membership.user_id==db.auth_user.id)(db.auth_membership.group_id==db.auth_group.id)(db.auth_group.role=='teacher')
db.courses.teacher_id.requires=IS_IN_DB(db(query),'auth_user.id')
form=SQLFORM(db.courses)
return dict(form=form)

由于 建

1 个答案:

答案 0 :(得分:1)

query=(db.auth_membership.user_id==db.auth_user.id)(db.auth_membership.group_id==db.auth_group.id)(db.auth_group.role=='teacher')

以上是无效的语法。 Set对象是可调用的,并且在调用时,它返回另一个Set对象,因此您可以链接Sets:

myset = db(query1)(query2)(query3)

如果您想要使用Query对象,则必须使用"&"进行显式连接。操作者:

myquery = query1 & query2 & query3