我正在开发一个应用程序,用户可以在其中输入工作请求,然后进入并搜索请求。我遇到的问题是构建请求摘要屏幕。基本上,它列出了搜索查询的结果。模板中的代码段如下:
{% for req in workrequests %}
{{ req.id }} {{ req.customer }} {{ req.dateEntered }} {{ req.Contact }}
{% endfor %}
这是我挂断的。 req.customer和req.Contact字段只是客户和联系人数据库的键。我想显示客户名称和联系人姓名。我假设以下查询应该可以解决这个问题:
Customer.query.filter_by(req.customer).one()
Contact.query.filter_by(req.Contact).one()
问题是,这将返回整个记录。我只是将这两个表中的名称字段放到我的模板中,这就是问题所在。我不知道如何继续这个
答案 0 :(得分:1)
Customer.query
是db.session.query(Customer)
的缩写形式。使用后者查询特定列:
db.session.query(Customer.name).filter_by(id=req.customer).one()
虽然我认为您真正想要的是一次查询,一次获取所有数据。类似的东西:
db.session.query(
WorkRequest.id,
WorkRequest.dateEntered,
Customer.name,
Contact.name
).join(
Customer,
Contact
).filter(...)