我遵循我的数据库模型:
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)
答案 0 :(得分:1)
它打印的内容绝对正确。
如果您需要单个列的值,则需要打印例如answer.adr.email
。请注意answer.adr
是一个列表,而不是一个对象,所以你也需要迭代它。