Hi David,

Thanks for your reply.

I did come across the list:reference option while trying to figure this
out. I couldn't figure this out though:

Say I add the following to my house-type table:

   Field('regions', 'list:reference region')

If I generate a form using SQLFORM, it presents me with a multiselect
region option where I can select as many regions as I need. Reading around,
it seems that the region field would then store something like this for
instance:

   'england', 'france', 'US', 'china'

How do I then create a query to show all house-type records with a region
of 'china' for instance?

I'm not an experienced user of development frameworks like this. Is it
usually this difficult to accomplish this kind of thing? Seems to me it
would be a pretty common requirement?

Thanks in advance, :-)

Chris

On Sat, Apr 14, 2012 at 8:52 PM, villas <villa...@gmail.com> wrote:

> I would just mention that if you only have a few regions/housetypes,  you
> might consider de-normalising the data and using list:reference and work
> with the jQuery.multiselect (if you have any problems with that,  you might
> like to read my other thread on the topic).
> Best regards,  David
>
> On Saturday, 14 April 2012 18:31:58 UTC+1, leftcase wrote:
>>
>> Hi all,
>>
>> I'm pretty new to web2py and web app development and I've spend some time
>> trying to figure out the best way to do this.
>>
>> I have two tables, house-types and regions. A house-type can exist in
>> many regions, and a region can have many house types:
>>
>> db.define_table(
>>     'region',
>>     Field('name', 'string', length=512, required=True),
>>     format = '%(name)s')
>>
>> db.define_table(
>>     'house-type',
>>     Field('title', 'string', length=512), #title of the newbuild property
>> listing
>>     Field('vendor',db.vendor, required=True),
>>     Field('bedrooms', 'integer'),
>>     Field('price', 'double',required=True),
>>     Field('description', 'text',length=65536, required=True),
>>     Field('live', 'boolean', default=False)
>>     )
>>
>> If I understand correctly, in order to create the many-to-many
>> relationship I should create a junction table like the following:
>>
>> db.define_table(
>>    'houses_and_regions',
>>    Field('house', db.house-type),
>>    Field('region', db.region))
>>
>> And then I should use SQLFORM to construct a form which updates both
>> house-type and houses_and_region tables when I create or modify a new house.
>>
>> What I'm struggling with is how to create a form which allows me to
>> select multiple regions for a house. I wondered if anyone could give me any
>> examples?
>>
>> Thanks in advance!
>>
>> Chris
>>
>

Reply via email to