-1
我想选择一个表,其中某个值不存在于参考字段中。是否可以否定contains()方法?可以web2py列表包含()否定?
grid = SQLFORM.smartgrid(db.redaktion.projekt.contains(projektid)
我想选择一个表,其中某个值不存在于参考字段中。是否可以否定contains()方法?可以web2py列表包含()否定?
grid = SQLFORM.smartgrid(db.redaktion.projekt.contains(projektid)
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。
感谢@Anthony,现在看来,除了表格选择之外的网格查询,即“SQLFORM.smartgrid(db.redaktion)”,导致'属性错误: '查询'对象没有属性'_tablename' ' – lebigmac
好的,找到了答案: SQLFORM.grid(query)OK SQLFORM.smartgrid(table)OK SQLFORM.smartgrid(query)WRONG! SQLFORM.smartgrid(table,contraints = {'tablename':query})好的 – lebigmac
对,我只是复制你的代码,错过了'smartgrid'与'grid'。我更新了答案以反映正确的代码。 – Anthony