为什么查询出来的书名不能直接显示呢?
Topic source感谢廖大的回复,这个内容在您之前的定制类里就学习了,当时还没反应过来有什么用,这下知道了~
在定义Book这个class的时候,写个__repr__让它返回book's name就好了:(一开始加到User里了,发现不行……)
class Book(Base):
__tablename__ = 'book'
id = Column(String(20), primary_key=True)
name = Column(String(20))
user_id = Column(String(20), ForeignKey('user.id')) # 通过外键与user表相连
username = relationship('User')
def __repr__(self):
return self.name
=======结果===========
print("%s 拥有的图书有:%s" % (user.name, user.books))
Stanley 拥有的图书有:[BK1, BK2, BK5]
- 1
o0stanley0o
# Add a book 一共添加了3本书 给user1
session = DBSession()
new_book = Book(id='9', name='book9', user_id='1')
session.add(new_book)
session.commit()
session.close()
# Select userinfo from table
session = DBSession()
user = session.query(User).filter(User.id == '1').one()
print(user.books)
session.close()
========结果==============
[<__main__.Book object at 0x000000000397A748>, <__main__.Book object at 0x000000000397A7B8>, <__main__.Book object at 0x000000000397A828>]
问题:如何才能打印出关联的书名,而不是地址呢?