Your desired behavior is that when a color is deleted it should be set to 
null in tshirts, so you need to put the ondelete attribute in the color 
field in the color table instead of on the colors field in the tshirt table.

db.define_table('color',
                       Field('color', 'string', ondelete="SET NULL"))


db.define_table('tshirt',
                       Field('name', 'string'),
                       Field('colors', 'list:reference color'))


On Thursday, March 20, 2014 2:15:56 PM UTC-4, André Kablu wrote:
>
> I have 2 tables, using sqlite:
>
> db.define_table('color',
>                        Field('color', 'string'))
>
>
> db.define_table('tshirt',
>                        Field('name', 'string'),
>                        Field('colors', 'list:reference color', 
> ondelete="SET NULL"))
>
>
> When I delete a color, all tshirts that have this color will break with 
> the error message:
> "using a recursive select but encountered a broken reference"
>
>
> So the delete() is not putting NULL on the reference...
>
> This is a bug right? Not the correct behavior...
>
> I was using list:reference b/c it seems much easier than building 3 
> tables... but now I am not sure if it is good to be used once it is not 
> "automatic"...
>
>
>
>
>
>

-- 
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 web2py+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to