0

我们有这些中等大小且不断增长的表格,最有趣的东西总是最新的。目前我们按创建时间排序,所以有趣的东西在最后。这需要在导航时单击 2 次,一次选择模型,另一次选择最后一页。

我当然可以改变顺序,让最新的东西在前面,但是随着新的东西被推到前面,页面的内容会不断变化,这使得历史的探索变得更加困难。

所以我想知道是否有办法让它直接进入最后一页?

4

2 回答 2

0

这是一个非常特殊的请求,但如果 URL 中没有page参数(即您在首页上),您可以重定向管理视图。

from django.shortcuts import redirect
from django.core.urlresolvers import reverse
class MyAdmin(admin.ModelAdmin):
    ...
    def changelist_view(self, request, extra_context=None):
        if not request.GET.get("p", False):
            return redirect("%s?p=%s" % (
                reverse("admin:my_app__model__changeview"), 
                self.paginator.page_range[-1])
        super(MyAdmin, self).changelist_view(request, extra_context=extra_context)

另一种方法是p在将控制权传递给父方法之前将 URL 参数注入请求中changelist_view(但这需要复制请求)。编辑Wouter 的解决方案实际上很简单

于 2012-12-11T13:41:28.567 回答
0

您可以更改change_list模板(pagination块)以显示{{page.last}}

https://github.com/django/django/blob/master/django/contrib/admin/templates/admin/change_list.html

于 2012-12-11T13:41:43.833 回答