如何访问关系字段?

2024-03-29 09:56:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经遵循我的数据库模型:

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应该打印值而不是地址。你知道吗

The above configuration establishes a collection of Address objects on User called User.addresses. It also establishes a .user attribute on Address which will refer to the parent User object.

我试着遵循代码:

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

错误:

AttributeError: 'InstrumentedList' object has no attribute 'email'


Tags: answeridbaseobjectaddressemailcolumninteger
1条回答
网友
1楼 · 发布于 2024-03-29 09:56:46

它打印的是绝对正确的。你知道吗

如果需要单个列的值,则需要打印answer.adr.email。请注意,answer.adr是一个列表,而不是一个对象,因此您还需要遍历它。你知道吗

相关问题 更多 >