以下代码适用于应用程序:
user.tweets.order_by(Tweet.message)
以下代码适用于jinja2模板:
{% for tweet in user.tweets %}
但是以下代码在模板中失败:
{% for tweet in user.tweets.order_by(Tweet.message) %}
除了将以下方法添加到User
类之外,是否有更简洁的方法对jinja2模板中的推文进行排序?
def tweets_by_message(self):
return user.tweets.order_by(Tweet.message)
该方法没有任何问题,但每次需要不同的订单时添加一些方法听起来都不对。
答案 0 :(得分:-1)
也许您可以将Tweet
放入模板上下文中。或者更好的是,使用上下文处理器将所有模型转储到模板上下文中,以便它们始终可用。
@app.context_processor
def _inject_models():
return {
'Tweet': Tweet,
'User': User,
'Foo': Foo,
}
我不知道这是否有效,但可能值得一试?
答案 1 :(得分:-1)
我猜你正在寻找这个:
{% for tweet in user.tweets|sort(attribute='message') %}