为什么我的查询只在我的sqlalchemy烧瓶应用程序中显示一个变量而不是全部?

时间:2014-05-21 10:17:29

标签: python flask sqlalchemy

有谁知道为什么这个查询只显示来自Stadium的stadium_name而不是所有的Fixture?

@app.route('/fixtures/', methods=['GET'])
@login_required
def fixtures():
    fixtures = db.session.query(Fixture,Stadium.stadium_name).join(Stadium)\
            .filter(Fixture.stadium_id==Stadium.id).order_by(desc(Fixture.fixture_dt))
    return render_template('fixtures.html', fixtures = fixtures) #refer to template

1 个答案:

答案 0 :(得分:1)

看起来您的查询可能过于复杂。 SQLAlchemy将使用数据模型中的关系,只要您正确设置它们即可。我猜你有一个一对多的Stadium to Fixture模型,所以你应该可以这样做:

fixtures = Fixture.query.join(Stadium).order_by(desc(Fixture.fixture_dt))

然后,在HTML文件中,您可以使用点分表示法访问字段:

{% for f in fixtures %}
<td>{{ f.name }}</td><td>{{ f.stadium.stadium_name }}</td>
{% endfor %}

在这里,我假设您已经设置了与one-to-many示例类似的关系。体育馆&#39;是从灯具到体育场的背光。