On Apr 11, 2008, at 11:45 AM, [EMAIL PROTECTED] wrote:

>
> Hello All,
>
> I have a session object, for instance:
> my_object = session.query(Person).filter_by(name='MYSELF').first()
>
> I know I can access to its attributes to modify the database:
> my_object.name = 'YOURSELF'
> my_object.town = 'PARIS'
>
> Is there a way to access its attributes on another way ?
>
> The point is that I have a dictionary that records all values of
> several textcontrols (with wxPython):
> my_dict = {'name':'YOURSELF', 'town':'PARIS'} etc
>
> I would like to link (with a loop) the keys of this dictionary with
> the attributes of the session object, without having to
> write again all the attributes (my_object.name = my_dict['name'] etc )
> since there are a lot.
>
> I tried to loop like this without success:
> for (key,value) in my_dict.iteritems():
>            my_object.key = value   #  my_object[key] = value  doesn't
> work either
>
> Thanks in advance for any hints and sorry for the low level of my
> question !

Python provides the "setattr()" function to assign object attributes  
by string expression:

for k, v in dict.iteritems():
     setattr(obj, k, v)

There is also the __dict__ attribute present on objects which can also  
be written to in the general case, but in SQLAlchemy we need you to  
use the attribute's "public" interface, i.e. setattr(), in order for  
SQLAlchemy's change events to take place.



--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To post to this group, send email to sqlalchemy@googlegroups.com
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