Re: [Sqlalchemy-tickets] [sqlalchemy] #1436: orm query.update() semi-accepts InstrumentedAttributes
Brought to you by:
zzzeek
From: sqlalchemy <mi...@zz...> - 2009-06-08 03:52:06
|
#1436: orm query.update() semi-accepts InstrumentedAttributes as keys for the "values" dict ---------------------------------+------------------------------------------ Reporter: guest | Owner: zzzeek Type: defect | Status: new Priority: medium | Milestone: 0.5.xx Component: orm | Severity: no triage selected yet Resolution: | Keywords: KeyError,update,orm Status_field: not decided upon | ---------------------------------+------------------------------------------ Changes (by zzzeek): * status_field: awaiting triage => not decided upon * summary: orm query.update() raises KeyError exception when an affected row was previously fetched => orm query.update() semi-accepts InstrumentedAttributes as keys for the "values" dict * milestone: => 0.5.xx Comment: usage of query.update() is as follows: {{{ session.query(User).filter(User.name == 'ed').update(dict(fullname ="new fullname" )) }}} the `InstrumentedAttribute` you are sending along works by accident here since it gets passed through to table.update() as a column, but query.update() expects it to be a string. We can either add an error message here for non-string values, or add support for columns/attributes as keys. -- Ticket URL: <http://www.sqlalchemy.org/trac/ticket/1436#comment:1> sqlalchemy <http://www.sqlalchemy.org/> The Database Toolkit for Python |