2017-09-14 163 views

回答

0

pyDAL查询中的否定运算符是~。此外,smartgrid的第一个参数必须是Table而不是Query。要将查询应用于给定的表,请使用constraints参数。所以,它应该是:

grid = SQLFORM.smartgrid(db.redaktion, 
    constraints={'redaktion': ~db.redaktion.projekt.contains(projektid)}) 

请参阅http://web2py.com/books/default/chapter/29/06/the-database-abstraction-layer#Logical-operators

+0

感谢@Anthony,现在看来,除了表格选择之外的网格查询,即“SQLFORM.smartgrid(db.redaktion)”,导致'属性错误: '查询'对象没有属性'_tablename' ' – lebigmac

+0

好的,找到了答案: SQLFORM.grid(query)OK SQLFORM.smartgrid(table)OK SQLFORM.smartgrid(query)WRONG! SQLFORM.smartgrid(table,contraints = {'tablename':query})好的 – lebigmac

+0

对,我只是复制你的代码,错过了'smartgrid'与'grid'。我更新了答案以反映正确的代码。 – Anthony

相关问题