I'm using version 2.0.7 and seeing the same problem.
I looked at the gluon/sqlhtml.py and it doesn't look like problem is
specific to custom query (Although I too have custom query passed to the
sqlform.grid)
elif deletable and len(request.args)>2 and request.args[-3]=='delete':
table = db[request.args[-2]]
if ondelete:
ondelete(table,request.args[-1])
ret = db(table[table._id.name]==request.args[-1]).delete()
db.commit() # If I add this, the record is deleted from DB too
return ret
I confirmed this by adding "db.commit()" just prior to returning. Without
this line, the record is removed from the table - but not form DB. So next
time we refresh and re-render the table, the deleted record re-appears
BTW, I have another function for bulk_delete (User selects from checkbox,
and deleted selected records in one go) I am not calling db.commit() there
explicitly but the records are indeed deleted from DB.
What is going on ?
-Mandar
On Tuesday, June 12, 2012 6:14:38 PM UTC+5:30, rahulserver wrote:
>
> I have the following sqlform.grid:
> COMMITMENTS=SQLFORM.grid((db.Commitments.Account==session.id
> ),user_signature=False)
>
> When I try to edit any row of the form, the edit is not committing. Is it
> that the sqlform.grid does not allow edits for query arguments?
>
--