2
class User(Base):
    __tablename__ = 'users'

    addresses = relationship('Address', order_by='Address.id', backref='user')


class Address(Base):
    __tablename__ = 'addresses'

    user_id = Column(Integer, ForeignKey('users.id'))

上面的代码展示了 SQLAlchemy 中非常常见的一对多配置。

如何从 的实例中获取类backref中“用户”的名称?我怎么知道我在类中有一个名为“addresses”的属性,它表明有很多地址?UserAddressUserUser

我可以从属性中获取所有列信息__table__.columns,但似乎这些信息也存储在那里。

4

1 回答 1

3

我们正在尝试鼓励使用inspect()0.8 中的新 API:

>>> from sqlalchemy import inspect
>>> inspect(User).attrs.keys()
['addresses', 'id']
>>> User.addresses.property.backref
'user'
于 2013-07-24T22:06:00.890 回答