您可以使用以下功能:
def __unipre__(self): return "[%s(%s)]" % (self.__class__.__name__, ', '.join('%s=%s' % (k, self.__dict__[k]) for k in sorted(self.__dict__) if '_sa_' != k[:4]))它将排除SA 魔术 属性,但不排除关系。因此,基本上它可能会加载依赖项,父项,子项等,这绝对是不可取的。
但这实际上要容易得多,因为如果您继承自
base,则拥有一个
__table__属性,因此您可以执行以下操作:
for c in JobStatus.__table__.columns: print cfor c in JobStatus.__table__.foreign_keys: print c
请参阅如何从SQLAlchemy映射的对象中发现表属性-类似的问题。
迈克(Mike)编辑:
请参见Mapper.c和Mapper.mapped_table之类的函数。如果使用0.8或更高版本,还请参见Mapper.attrs和相关函数。
Mapper.attrs的示例:
from sqlalchemy import inspectmapper = inspect(JobStatus)for column in mapper.attrs: print column.key



