Is this still an open issue? If so can you post your model and the complete action?
On Sunday, 9 December 2012 17:02:13 UTC-6, Kenneth wrote: > > Hi, > > I "converted" the problematic row ( row = db(db.assets.asset_id == > form.vars.id).update(asset_name = form.request_vars.asset_name_2) ) into > normal SQL and used it on the database directly, works fine. > > I made a static version of the same row ( row = db(db.assets.asset_id == > 273).update(asset_name = 'testing3') ) and put it into an own function and > works fine. But if I put the static row into my onaccept ( > crud.settings.update_onaccept = update_assets) function I get the same > error. > > I just wildly guessing but could be somekind of locking issue? > > > Kenneth > > Den fredagen den 7:e december 2012 kl. 18:50:17 UTC+2 skrev Massimo Di > Pierro: >> >> The error you are getting is a database error, not a web2py error, it >> says you are trying to insert a record with a duplicate id. Perhaps the >> data is already corrupted in db. >> >> On Friday, 7 December 2012 00:06:43 UTC-6, Kenneth wrote: >>> >>> Hi, >>> >>> this is a legacy table and asset_id is the id for the table. So it needs >>> to be unique. The migration is false, web2py is not able to change the >>> structure at all. >>> >>> I'm only trying to update the asset_name not create an new that looks >>> the same. >>> >>> >>> Kenneth >>> >>> >>> Den fredagen den 7:e december 2012 kl. 04:10:24 UTC+2 skrev Massimo Di >>> Pierro: >>>> >>>> I suspect your asset_id is declared as unique (or was declared as >>>> unique, then you made a migration but db still thinks it is unique). >>>> >>>> On Thursday, 6 December 2012 17:37:10 UTC-6, Kenneth wrote: >>>>> >>>>> Hello, >>>>> >>>>> I have a form created by CRUD with some extra fields. assets_label >>>>> field is a dropdown consisting of all old labels. Beside that I add an >>>>> normal text field where user can enter a new label. >>>>> I have then crud.settings.create_onaccept = insert_assets where I >>>>> update the label name if there is some text in the textfield. This works >>>>> great. >>>>> >>>>> The problem comes with crud.settings.update_onaccept = update_assets >>>>> and >>>>> def update_assets(form): >>>>> if form.request_vars.asset_name_2 != '': >>>>> row = db(db.assets.asset_id == form.vars.id).update(asset_name >>>>> = form.request_vars.asset_name_2) >>>>> >>>>> I get an error ticket containg: >>>>> <class '_mysql_exceptions.IntegrityError'> (1062, "Duplicate entry >>>>> '275-2012-12-07 10:26:41' for key 'asset_id'") >>>>> >>>>> >>>>> File "/usr/lib/pymodules/python2.6/MySQLdb/cursors.py", line 166, in >>>>> execute >>>>> self.errorhandler(self, exc, value) >>>>> File "/usr/lib/pymodules/python2.6/MySQLdb/connections.py", line 35, in >>>>> defaulterrorhandler >>>>> raise errorclass, errorvalue >>>>> IntegrityError: (1062, "Duplicate entry '275-2012-12-07 10:26:41' for key >>>>> 'asset_id'") >>>>> >>>>> >>>>> Any ideas what I'm doing wrong? >>>>> >>>>> >>>>> Kenneth >>>>> >>>>> >>>>> --