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

Reply via email to