У меня есть базовые модели для пользователей и сообщений. В моей модели пользователя у меня есть
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 %}
К сожалению, это не работает. Сообщения - это запрос, а не объект b/c lazy='dynamic'
. Я могу сделать это, если изменю lazy='joined'
, но тогда будут загружаться все сообщения для пользователей каждый раз, когда я запрашиваю пользователя.
Я попытался добавить .options(joinedload('posts'))
к моему запросу, но он сказал, что
InvalidRequestError: 'User.posts' не поддерживает заполнение объектов — нельзя применять активную загрузку.
Любая помощь приветствуется.