Skip to content

Instantly share code, notes, and snippets.

@kataev
Created May 7, 2019 08:23
Show Gist options
  • Save kataev/e034d0d76b74e2cf3bb15907a621f598 to your computer and use it in GitHub Desktop.
Save kataev/e034d0d76b74e2cf3bb15907a621f598 to your computer and use it in GitHub Desktop.
import sqlalchemy as sa
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()
class Test(Base):
__tablename__ = 'test'
id = sa.Column('test_id', sa.Integer, primary_key=True)
# we have only column and instance
some_col = Test.__table__.c.test_id
t = Test()
t.id = 1
col_name = some_col.name
try:
getattr(t, col_name)
except AttributeError:
print('attr err') # error sad but true
from sqlalchemy.orm import object_mapper
mapper = object_mapper(t)
col_property = mapper.get_property_by_column(some_col)
val = getattr(t, col_property.key)
assert val == t.id
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment