Do I am doing right?
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"""
import psycopg2
try:
db(db[request.args(0)].id==request.args(1)).delete()
except psycopg2.IntegrityError:
db.rollback()
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"""
form = crud.update(db[request.args(0)], request.args(1),
onvalidation=ondelete_func)
return dict(form=form)
I still get this ticket :
<class 'psycopg2.IntegrityError'> ERREUR: UPDATE ou DELETE sur la table «
table2 » viole la contrainte de clé étrangère « fk_table3 » de la table «
table3 » DETAIL: La clé (id)=(2) est toujours référencée à partir de la
table « table3 »
And I am not sure how I can revert the crud.update deletion the way I code
that.
Thanks
Richard
On Tue, Dec 11, 2012 at 4:45 PM, Richard Vézina <[email protected]
> wrote:
> So, it may be the reason I get internal error then. And the Niphold code
> is working. I make test.
>
> Richard
>
>
> On Tue, Dec 11, 2012 at 4:40 PM, Massimo Di Pierro <
> [email protected]> wrote:
>
>> Mand that you if catch a DB exception you must revert or you cannot do
>> anything else with the DB within the transaction and you end up with a
>> ticket.
>>
>>
>> On Tuesday, 11 December 2012 14:52:08 UTC-6, Richard wrote:
>>
>>> I have to see if record of table2 is attached by table3 in my example,
>>> but in my app actually, table3 is 30 differents tables that each can refer
>>> to table2 entry multiple time (one to many)...
>>>
>>> I would prefer to do what you suggest "child tables" but I am afraid of
>>> overhead.
>>>
>>> Richard
>>>
>>>
>>> On Tue, Dec 11, 2012 at 3:32 PM, Niphlod <[email protected]> wrote:
>>>
>>>> ere are records attached.
>>>
>>>
>>> --
>>
>>
>>
>>
>
>
--