collections can be represented as dictionaries using attribute_mapped_collection or similar:
http://www.sqlalchemy.org/docs/mappers.html#dictionary-based-collections they often work well when combined with the associationproxy extension: http://www.sqlalchemy.org/docs/reference/ext/associationproxy.html On Jul 3, 2010, at 5:54 PM, cd34 wrote: > I have a Declarative Base model that is laid out like: > > content -> page -> block > block > block > > block is a meta that points to a block table and a further object of > element. page is a many to many to block placement, but, is a one to > one to block, blocks is a many to many to elements. > > As part of the processing in the template, I need to pass > content.page.block[1] to a mako function where [1] is determined by a > match on the one to one name. > > Basically, I need to get the position of: > > content.page.blocks[].block.name where block.name = 'whatever' > > so that I can pass content.page.blocks to my mako function. > > As a temporary workaround, I've done the following which loops through > the objects, but, is there any way to force SQLAlchemy to use a > dictionary rather than a list when addressing blocks? > > <%def name='element(blockname, content)'> > <% print content.page.blocks[0].block.name %> > % for block in content.page.blocks: > % if block.block.name == blockname: > % for element in block.elements: > <% output = getattr(h.CMS(), element.element.function)() %> > ${output} > % endfor > % endif > % endfor > </%def> > > In this situation, I need to know if content.page.blocks[0].block.name > == blockname and then pass content.page.blocks to h.CMS(). > > Or am I missing something obvious here? > > Thank you. > > -- > You received this message because you are subscribed to the Google Groups > "sqlalchemy" group. > To post to this group, send email to sqlalch...@googlegroups.com. > To unsubscribe from this group, send email to > sqlalchemy+unsubscr...@googlegroups.com. > For more options, visit this group at > http://groups.google.com/group/sqlalchemy?hl=en. > -- You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To post to this group, send email to sqlalch...@googlegroups.com. To unsubscribe from this group, send email to sqlalchemy+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sqlalchemy?hl=en.