You should read the section on database validators .... 
http://web2py.com/books/default/chapter/29/07/forms-and-validators#Database-validators

you can either use the _and argument of IS_IN_DB, but more easily for 
everybody, e.g. there's not even a chance they can select an ip that is 
used yet, you can just pass a set instead of the whole table to IS_IN_DB...

db(~db.ipaddress.id.belongs(db(db.server.id>0)._select(db.server.ipaddress_id)))

On Saturday, April 25, 2015 at 5:28:16 PM UTC+2, kecajk...@gmail.com wrote:
>
> Hi Guys, 
>
> I have simple database:
>
> db.define_table('ipaddress',
>    Field('ip', unique=True, length=200),
>    Field('subnet', length=200),
>    format = '%(ip)s')
>
> db.define_table('server',
>    Field('servername', length=200),
>    Field('port', length=200),
>    Field('ipaddress_id', 'reference ipaddress'))
>
> I have few records in ipaddress table and not would like to add some 
> validators. 
> When adding record to server table i would like to check if ipaddress_id 
> exist in ipaddress table AND if it hasn't been used before in server table.
> That can be done by doing:
>
> db.server.ipaddress_id.requires = IS_IN_DB(db,db.ipaddress.id, '%(ip)s') 
> ,IS_NOT_IN_DB(db,db.server.ipaddress_id, '%(ip)s')]
>
> But in that case Filed server.ipaddress_id is not a dropdown menu and it's 
> not presented as %(ip)s. I would like to have dropdown to choose IP 
> available in ipaddress table, but just the one which hasn't been used 
> before. Any tips? 
>
> Thanks, 
>
>

-- 
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