IntegrityError is a subclass of Database - you need to catch 
psycopg2.database.integrityerror

On Tuesday, December 11, 2012 9:43:04 AM UTC-7, Richard wrote:
>
> Hello,
>
> I try to write a ondelete function that will try to delete a record and if 
> fall on the exception : <class 'psycopg2.IntegrityError'>
>
> Will trigger a flash message, here the code :
>
> def ondelete_func(form):
>     """try delete ondelete if database raise an error trigger a message 
> telling the user that the record can't be deleted"""
>     try:
>         crud.delete(db[request.args(0)], request.args(1))
>     except IntegrityError:
>         session.flash = T('The record you try to delete is still 
> referenced by other records and can\'t be deleted')
>     
> def create_update():
>     """create update funciton"""
>     #crud.settings.update_ondelete = StorageList()
>     form = crud.update(db[request.args(0)], request.args(1), 
> ondelete=ondelete_func)
>     return dict(form=form)
>
> I also try with : "except psycopg2.IntegrityError:"
>
> No chance.
>
> Thanks
>
> Richard
>

-- 



Reply via email to