>
> Hi
>
> I have tested the NO ACTION and it gives some king of solution . I have
> defined the following simple model
> db.define_table('table_parent',Field('parent_name'))
> db.define_table('table_child',Field('child_name'),
> Field('parentid', 'reference table_parent',ondelete='NO
> ACTION',required=True ))
>
> with smart grid , on attempt to delete from parent table if there are a
> child reference it display an error messgae
> "An error occurred , Please reload the Page " . That means the Form
> continue to function without throwing a ticket .
>
No, the delete request is made via Ajax, and the message you see is the
result of an error ticket being generated during an Ajax request. This is
probably not the best approach. It's not a bad idea to set ondelete='NO
ACTION', as that will enforce the desired behavior at the level of the
database, but you should additionally implement code to catch such errors
before they hit the database so you can catch them and display an
appropriate message in the UI.
Note, if you use the "deletable" argument to the grid and specify a
function to determine if a given record is deletable, then the "Delete"
button will simply not be present for any non-deletable rows in the grid,
which will prevent users from attempting illegal deletes to begin with.
Note, though, that the query in the "deletable" function will be executed
for each row shown in the grid.
Anthony
--
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
---
You received this message because you are subscribed to the Google Groups
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.