It depends on context. Web2py DAL is closer to SQL than on ORM. Assuming
db.define_table('person',Field('name'),Field('email'))
you have two options:
1)
db.define_table('message',Field('body'),Field('recipients','list:reference
person'))
for row in db(db.message).select(): # one select
for recipient in row.recipents:
print recipient.name # one select per recipient to get name (lazy)
2)
db.define_table('message',Field('body'))
db.define_table('recipient',Field('message',db.message),Field('person',db.person))
for message in db(db.message).select():
for recipient in message.recipient.select() # one select/message
print recipient.person.name # one select/recipient
or with a single select using joins:
for row in
db(db.message.id==db.recipient.message)(db.recipient.person==person.id).select()
print row.message.body, row.person.id
On Friday, 17 August 2012 11:01:34 UTC-5, Larry Wapnitsky wrote:
>
> OK. I"m getting close, but I"m stuck on the following SQLAlchemy code
> conversion:
>
> recipients = relationship( 'Recipient',
> secondary = mr_link,
> backref = 'message',
> lazy = 'dynamic' )
>
>
> attachments = relationship( 'Attachment',
> secondary = ma_link,
> backref = 'message',
> lazy = 'dynamic' )
>
>
> I don't see how to adapt this in the manual.
>
> TIA,
> Larry
>
> On Friday, August 17, 2012 8:24:41 AM UTC-4, Larry Wapnitsky wrote:
>>
>> Thanks, Massimo. I'll give this a read and see if I can adapt it
>> properly.
>>
>> As usual, your hard work is greatly appreciated.
>>
>> On 8/15/2012 6:34 PM, Massimo Di Pierro wrote:
>>
>> I meant this:
>>
>> http://web2py.com/AlterEgo/default/show/189
>>
>>
>> On Wednesday, 15 August 2012 14:22:36 UTC-5, Larry Wapnitsky wrote:
>>>
>>> I have a project in which I've just written the database functions using
>>> SQLAlchemy. It was much simpler than my original, hand-written SQL
>>> queries, especially once I got the hang of creating "relationships" with
>>> SA's ORM.
>>>
>>> Now, I would like to create a front-end for this using web2py, but,
>>> from experience, I know the DAL and SA's ORM are very different.
>>>
>>> What's the group's view on the best way to integrate my two projects?
>>>
>> --
>>
>>
>>
>>
>>
>>
--