Если используется SQLAlchemy версии 0.8 или более поздней, вам следует использовать API проверки времени выполнения .
Если класс модели равен User
, а единственный первичный ключ - id
,
>>> from sqlalchemy.inspection import inspect
>>> inspect(User).primary_key[0].name
'id'
Если класс модели User
и имеется много первичных ключей,
>>> from sqlalchemy.inspection import inspect
>>> [key.name for key in inspect(User).primary_key]
['id', 'name']
Если вы используете версию SQLAlchemy менее 0,8, вам следует использовать функцию class_mapper()
.
>>> from sqlalchemy.orm import class_mapper
>>> class_mapper(User).primary_key[0].name
'id'
В этом случае функция inspect()
и функция class_mapper()
возвращают один и тот же объект, но использование inspect()
более перспективно для будущего.