In my model I defined the following tables:
db.define_table('css_selectorproperty',
Field('selector',length=48,default='',notnull=True),
Field('property',length=36,default='',notnull=True),
Field('name',length=84,default='',notnull=True),
Field('inquery',type='boolean',default='True'),
migrate=False)
db.define_table('css_declaration',
Field('bedrijf_id',db.bedrijf,default='',notnull=True,ondelete='CASCADE',writable=False,readable=False),
Field('selectorproperty_id',db.css_selectorproperty,default='',notnull=True,ondelete='CASCADE'),
Field('value',length=48,default='',notnull=True),
migrate=False)
In a function I would like to join the two tables without loosing any
selectorproperties:
@auth.requires_membership('card')
def manage_css():
rows=db().select(db.css_selectorproperty.ALL,db.css_declaration.ALL,\
left=db.css_declaration.on((db.css_selectorproperty.id==db.css_declaration.selectorproperty_id)&
\
(db.css_declaration.bedrijf_id==auth.user.bedrijf_id)&(db.css_selectorproperty.inquery==True)),
\
orderby=db.css_selectorproperty.id)
return dict(rows=rows)
The left outer join:
left=db.css_declaration.on((db.css_selectorproperty.id==db.css_declaration.selectorproperty_id)
... and the first condition:
(db.css_declaration.bedrijf_id==auth.user.bedrijf_id)
both work, however, the second condition:
(db.css_selectorproperty.inquery==True)
... doesn't work. rows also contains the records that have inquery set
to False. I have no idea why, I hope one of you has.
Kind regards,
Annet.