如何进入关系领域?

时间:2018-03-13 09:38:28

标签: python sqlalchemy

我遵循我的数据库模型:

class User(Base):
  __tablename__ = 'users'
  id = Column(Integer, primary_key=True)
  name = Column(String)
  adr = relationship('Address', backref='uuu')

class Address(Base):
  __tablename__ = 'addresses'
  id = Column(Integer, primary_key=True)
  email = Column(String, nullable=False)
  # user_id = Column(Integer)
  user_id = Column(Integer, ForeignKey('users.id'))

Base.metadata.create_all(engine)

answer = sess.query(User).first()
print(answer.adr)

打印: [<__main__.Address object at 0x7fed81592e50>]

但是docs它应该打印值代替地址。

  

上述配置在名为Address的{​​{1}}上建立了User个对象的集合。它还在User.addresses上建立.user属性,该属性将引用父Address对象。

我尝试按照代码:

User

错误:

answer = sess.query(User).first() print(answer.adr.email)

1 个答案:

答案 0 :(得分:1)

它打印的内容绝对正确。

如果您需要单个列的值,则需要打印例如answer.adr.email。请注意answer.adr是一个列表,而不是一个对象,所以你也需要迭代它。