2017-09-14 108 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

相關問題