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

-- 



Reply via email to