【发布时间】:2016-02-26 17:07:59
【问题描述】:
请求(我正在搜索的对象)由分配角色的用户组成,由所述请求表示。见下文:
class Request(db.Model):
__tablename__ = 'requests'
id = Column(Integer, primary_key=True)
user = Column(Integer, ForeignKey("users.id"), nullable=False)
role = Column(Integer, ForeignKey("roles.id"), nullable=False)
...
还有我们的关系:
# Define relationship between a User and their Requests
requests = relationship('Request', backref='requested_by', lazy='dynamic')
# Define relationship between a Role and Requests for this Role
requests = relationship('Request', backref='requested_role', lazy='dynamic')
最后,目标:
# Return any requests made by a user or a role matching the search query
data = Request.query.filter(or_(Request.requested_by.name.contains(search_query),
Request.requested_by.username.contains(search_query),
Request.requested_role.name.contains(search_query))).all()
运行上面的代码,结果如下:
AttributeError: Neither 'InstrumentedAttribute' object nor 'Comparator' object associated with Request.requested_by has an attribute 'name'
这里的想法是能够通过用户的相关详细信息或与之关联的角色来搜索请求对象。这可能吗?
【问题讨论】:
标签: python orm flask sqlalchemy flask-sqlalchemy