Sometimes there's a need to use table's column names such as 'from',
'import' etc... In my case it's 'from' (that's from a log parser I
can't change it or the change is not very obvious). So I make a map:

cleanup_warning_table = sa.Table("cleanup_warning", meta.metadata,
                                    sa.Column('id', sa.types.Integer,
primary_key = True),
                                    sa.Column('proc_id',
mysql.MSMediumInteger(unsigned = True)),
                                    sa.Column('queue',
sa.types.Unicode(11)),
                                    sa.Column('from',
sa.types.Unicode(255)),
                                    sa.Column('to',
sa.types.Unicode(255)),
                                    sa.Column('proto',
sa.types.Unicode(255)),
                                    sa.Column('helo',
sa.types.Unicode(255)),
                                    sa.Column('message',
mysql.MSMediumText),
                                    sa.Column('datetime',
sa.types.DateTime)
                                    )

class CleanupWarning(object):
    pass

sa.orm.mapper(CleanupWarning, cleanup_warning_table)
cleanup_warning_table.metadata.bind = create_engine(meta.engine,
pool_recycle = 600)

That's OK. Now when I try to get some data of it:
>>> a = Session.query(CleanupWarning).limit(1).all()
>>> dir(a[0])
['__class__', '__delattr__', '__dict__', '__doc__', '__format__',
'__getattribute__', '__hash__', '__init__', '__module__', '__new__',
'__reduce__', '__reduce_ex__', '__repr__', '__setattr__',
'__sizeof__', '__str__', '__subclasshook__', '__weakref__',
'_sa_class_manager', '_sa_instance_state', 'datetime', 'from', 'helo',
'id', 'message', 'proc_id', 'proto', 'queue', 'to']

I see the 'from' property available in the instance, though I can't
access to in by it's name rather than through __getattribute__
explicit call.

Is there any way to map a DB column name to some reasonable (or
settable explicitly) property name?

-- 
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