May I make a suggestion?
Your model will be simpler like this ...
db.define_table('province',
SQLField('name', 'string', length=50, required=True,
default=None))
db.define_table('cities',
SQLField('name', 'string', length=50, required=True),
SQLField('id_province',db.province,
required=IS_IN_SET(db.province)))
db.define_table('customer',
SQLField('name', 'string', length=50, required=True),
# Removed id_province field
SQLField('id_cities',db.cities, required=IS_IN_SET(db.cities)))
The id_province field is redundant and unnecessary. If you wish to know a
customer's province, join the tables like this:
# request.args(0) contains the customer's id
((db.customer.id==request.args(0) &
(db.customer.id_cities==db.cities.id) &
(db.cities.id_province==db.province.id)
)
On Monday, April 2, 2012 2:38:51 PM UTC-4, visuallinux wrote:
>
> Dear All.
>
> I have the followings on models:
>
>
> db.define_table('province',
> SQLField('name', 'string', length=50, required=True,
> default=None))
>
> db.define_table('cities',
> SQLField('name', 'string', length=50, required=True),
> SQLField('id_province',db.province,
> required=IS_IN_SET(db.province)))
>
> db.define_table('customer',
> SQLField('name', 'string', length=50, required=True),
> SQLField('id_province',db.province,
> required=IS_IN_SET(db.province)),
> SQLField('id_cities',db.cities, required=IS_IN_SET(db.cities)))
>
>
> I need to implement a FORM for create customers so when i selected a
> options in SELECT province the SELECT cities automatically add the cities
> that belong to the province SELECTED.
>
> Any idea how i can do?
>
> Fernando.
>
>