0

我正在开发一个应用程序,用户可以在其中输入工作请求,然后进入并搜索请求。我遇到的问题是构建请求摘要屏幕。基本上,它列出了搜索查询的结果。模板中的代码片段如下:

        {% 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()

问题是,这将返回整个记录。我只是在这两个表中的名称字段之后放入我的模板中,这就是问题所在。我不知道如何继续

4

1 回答 1

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(...)
于 2013-01-22T16:00:52.977 回答