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.

Reply via email to