I still couldn't find out how to do it with IS_IN_DB and a DAL Set.
But using IS_IN_SET works:
mp_list=gdb(gdb.municipality.province==gdb.province.id)\
.select(gdb.municipality.psgc_m,gdb.municipality.name,\
gdb.province.name,orderby=gdb.municipality.name).as_list()
mp_dd2=[(i['municipality']['psgc_m'],\
i['municipality']['name']+' ('+i['province']['name']+')')\
for i in mp_list if i]
Field('muni',requires=IS_IN_SET(mp_dd2,zero='None')
On Apr 22, 11:02 am, niknok <[email protected]> wrote:
> I have a set
>
> mp_list=gdb(gdb.municipality.province==gdb.province.id)
>
> which I'm trying to use it in a select field but causes an error:
>
> Field('municipality',requires=IS_IN_DB(mp_list,'municipality.psgc_m',
> '%(municipality.name)s
> (%(province.name)s)'))
>
> I'm trying to get it to show in the dropdown like this: municipal_name
> (province_name). How do I format the field names from a set?
>
> I tried and can generate a query of the rows I'd like to have :
>
> mp_list=gdb(gdb.municipality.province==gdb.province.id)\
> .select(gdb.municipality.psgc_m,gdb.municipality.name,\
> gdb.province.name,orderby=gdb.municipality.name)
> for x in mp_list: print x['municipality']['name']+'
> ('+x['province']['name']+')'