this is because RowProxy is using __slots__ now.  which ironically is  
also for efficiency reasons :) .    there are ways to build mutable  
wrapper objects which are pretty efficient in a case like this, such  
as a named tuple.   my own minimal version of that looks like:

def named_tuple(names):
     class NamedTuple(tuple):
         pass
     for i, name in enumerate(names):
         setattr(NamedTuple, name, property(itemgetter(i)))
     return NamedTuple

Post = named_tuple('id' 'post_body', 'excerpt')
for post in posts:
        post = Post([post.id, post.post_body, post.post_body[0:100]])




On Dec 10, 2008, at 11:20 AM, GregF wrote:

>
> Hi,
>
> I dusted off a project that had been dormant for a few months.
> Upgrading to sqlalchemy .5 broke some code where I was inserting
> computed values directly into  a rowproxy object, before I passed the
> rows to a template.
>
> I'm getting 'RowProxy' object has no attribute 'excerpt'
>
> Here is a very much simplified version of what I'm doing that used to
> work before the .5 upgrade:
> --------------------------------------------------------------------------------------
>    posts_table = Table('posts', metadata, autoload=True)
>    q = posts_table.select()
>    ... some q.where stuff here
>
>    r = q.execute()
>
>    posts = r.fetchall()
>
>    for post in posts:
>        post.excerpt = post.post_body[0:100]
>
>    return posts
> ---------------------------------------------------------
>
> The code bombs on any computed value, whether slicing is used or not.
> I was trying to avoid building a new object like "posts" as an array
> of dict, for simplicity and efficiency reasons.
>
> Is there any way to fix this, or will I just have to build my own
> object?
>
> Thank, Greg
>
> >


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to