-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