Django Contect_processor颠倒了列表

时间:2014-02-07 15:43:30

标签: python django reverse

我正在使用django并尝试创建一个context_processor,他将创建一个可以在我的基本模板中显示的新闻帖列表。我的代码看起来像这样。

from news.models import Post

def get_news_title(request):
    return{
        'get_news_title': Post.objects.all().reverse()[:5]
    }

但它仍然只显示我的前5个新闻帖...

任何提示?

1 个答案:

答案 0 :(得分:0)

Django docs明确表示

  通常只应在具有a的QuerySet上调用

reverse()   定义排序(例如,在查询定义a的模型时)   默认排序,或使用order_by()时。如果没有这样的排序   为给定的QuerySet定义,对它调用reverse()没有实际意义   效果(在调用reverse()之前,排序是未定义的,和   之后将保持不确定状态。)

因此您需要使用order_by('some field here')

例如:

Post.objects.order_by('id').reverse()[:5]

查看order_by()

的文档