【发布时间】:2014-03-27 23:50:00
【问题描述】:
我有 User 和 Post 的基本模型。在我的用户模型中,我有
posts = db.relationship('Post', backref='user', lazy='dynamic')
但是,当我做类似的事情时
return render_template('user.html', users=users)
我想做类似的事情
{% for user in users %}
<tr>
<td>{{ user.id }}</td>
<td>{{ user.posts|length }}</td>
</tr>
{% endfor %}
很遗憾,这不起作用。 Posts 是一个查询,而不是 lazy='dynamic' 的对象 b/c。如果我更改lazy='joined',我可以执行上述操作,但它会在我查询用户时为用户加载所有帖子。
我尝试将.options(joinedload('posts')) 添加到我的查询中,但它说
InvalidRequestError: 'User.posts' 不支持对象填充 - 无法应用预先加载。
感谢任何帮助。
【问题讨论】:
标签: python sqlalchemy flask jinja2 flask-sqlalchemy