list.reverse()在Django中无法正常工作

Aug*_*toQ 4 python django blogs pagination

我是第一个使用Django框架的项目,我决定创建一个博客,因为很容易在网上找到它的内容.然后,我发现了Paginator模块,并决定使用它.问题是,每当我添加一个帖子,它就会到达数据库的末尾,所以我有一个博客,到目前为止,它首先显示旧帖子.

因此,我决定使用.reverse(),如下所示:

def index(request):
    posts = Post.objects.all()
    posts.reverse()
    paginator = Paginator(posts, 2)

    try:
        page = int(request.GET.get("page", "1"))
    except ValueError:
        page = 1

    try:
        posts = paginator.page(page)
    except (InvalidPage, EmptyPage):
        posts = paginator.page(paginator.num_pages)

    return render_to_response('index.html', {
                                             'Posts': posts,
                                             'Sideposts': Sidepost.objects.all(),
                                             })
Run Code Online (Sandbox Code Playgroud)

唯一的问题是,这不起作用,至少不与Paginator一起使用.当我停止使用Paginator时,它可以工作,但不会.

我认为这是一个非常奇怪的行为,我环顾四周但找不到任何帮助我解决这个问题的东西.我做错了吗?

jos*_*hua 6

让数据库执行排序:

posts = Post.objects.all().order_by('-id')
Run Code Online (Sandbox Code Playgroud)

当然,最好使用日期字段或其他东西.