web2py的SQLFORM.grid的第一个参数就是query,手册没展开说明,其实本意是说,你这里要放一个web2py的DAL的query对象,什么是web2py的DAL的query对象呢,query对象是这种格式的db():
:
db.define_table('employeeInfo', Field('BirthPlace'), Field('EmployeeName'), Field('EmployeeAge')),
1、直接放一个表名:db.employeeInfo,例如
SQLFORM.grid(
db.employeeInfo,
fields=[db.employeeInfo.EmployeeName,db.employeeInfo.EmployeeAge,],
.....
)
2、db(db.employeeInfo.EmployeeAge==12),例如
SQLFORM.grid(
db(db.employeeInfo.EmployeeAge==12),
fields=[db.employeeInfo.EmployeeName,db.employeeInfo.EmployeeAge,],
.....
)
3、复杂组合条件
SQLFORM.grid(
db((db.employeeInfo.EmployeeAge==12) &(db.employeeInfo.BirthPlace=='beijing') ),
fields=[db.employeeInfo.EmployeeName,db.employeeInfo.EmployeeAge,],
.....
)
4、也可以通过权限等判断,直接用变量来控制,录入
if auth.has_membership(role='superadmin'):
query=db.employeeInfo
else:
query=db(db.employeeInfo.EmployeeAge==12)
.......
SQLFORM.grid(query,
fields=[db.employeeInfo.EmployeeName,db.employeeInfo.EmployeeAge,],
.....
)