if not len(record): or:
query=db(db.adres.id==record_id) if query.count() == 0: and then: row = query.select(field)[0] On 22 Maj, 11:45, annet <[email protected]> wrote: > I have my authentication, authorization, create and read functions > working, however, I don't get update and delete function to function > without flaws. The problem lies in the fact that the vistor can tamper > with the URL in the browser's address bar. > > In a view I have got: > > <td> > {{=A(row.adressoort,_href=URL(r=request,f='update_address',args= > [row.id]))}} > </td> > > The update_address function reads like: > > @auth.requires_membership('user_3') > def update_address(): > record_id=request.args[0] > record=db(db.adres.id==record_id).select(db.adres.bedrijf) > if record==[]: > redirect(URL(r=request,f='crud_address')) > elif not record[0].bedrijf==auth.user.bedrijf: > redirect(URL(r=request,f='crud_address')) > form=crud.update(db.adres,request.args[0]) > return dict(form=form) > > When the user clicks the link in the view the correct record is > displayed, when the user tampers the arg in the URL two things happen: > if he changes the arg to a record_id of an existing record the elif > redirects to the crud_address function, however, when he changes the > arg to a record_id that is not in the database the following error > ticket is issued: > > Traceback (most recent call last): > File "/Library/Python/2.5/site-packages/mockpy/gluon/restricted.py", > line 98, in restricted > File "/Users/iannet/mockpy/applications/mock/controllers/crud.py", > line > 41, in <module> > File "/Library/Python/2.5/site-packages/mockpy/gluon/globals.py", > line > 75, in <lambda> > File "/Users/iannet/mockpy/gluon/tools.py", line 1049, in f > return action(*a, **b) > File "/Users/iannet/mockpy/applications/mock/controllers/crud.py", > line > 31, in update_address > elif not record[0].bedrijf==auth.user.bedrijf: > File "/Library/Python/2.5/site-packages/mockpy/gluon/sql.py", line > 2109, > in __getitem__ > SyntaxError: SQLRows: no such row > > So, if record==[]: is the cause of a syntax error, what is the correct > syntax of this statement? > > Kind regards, > > Annet. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "web2py Web Framework" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/web2py?hl=en -~----------~----~----~----~------~----~------~--~---

