查询Jinja2模板中的单个字段

时间:2013-01-22 15:29:18

标签: flask jinja2 flask-sqlalchemy

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

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

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

1 个答案:

答案 0 :(得分:1)

Customer.querydb.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(...)