我们有这些中等大小且不断增长的表格,最有趣的东西总是最新的。目前我们按创建时间排序,所以有趣的东西在最后。这需要在导航时单击 2 次,一次选择模型,另一次选择最后一页。
我当然可以改变顺序,让最新的东西在前面,但是随着新的东西被推到前面,页面的内容会不断变化,这使得历史的探索变得更加困难。
所以我想知道是否有办法让它直接进入最后一页?
这是一个非常特殊的请求,但如果 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 的解决方案实际上很简单
您可以更改change_list
模板(pagination
块)以显示{{page.last}}
https://github.com/django/django/blob/master/django/contrib/admin/templates/admin/change_list.html