Django admin:如果列表中只有一个,则重定向到对象更改页面

Cri*_*spy 1 python django django-admin

我正在将 Django 用于应用程序,并想知道管理中的一个选项。如果列表视图中只存在一个对象,django 管理员是否可以重定向到对象的详细信息页面?

例如,如果只有这个对象存在: 在此处输入图片说明

立即重定向到此对象的更改视图,而无需用户单击该对象。

我没有使用任何自定义视图。经过 2 个小时的搜索,我找不到任何解决方案。

谢谢!

itz*_*nTV 6

你可以试试这个

def changelist_view(self, request, extra_context=None):
    if self.model.objects.all().count() == 1:
        obj = self.model.objects.all()[0]
        return HttpResponseRedirect(reverse("admin:%s_%s_change" %(self.model._meta.app_label, self.model._meta.model_name), args=(obj.id,)))
    return super(ItemAdmin, self).changelist_view(request=request, extra_context=extra_context)
Run Code Online (Sandbox Code Playgroud)

还要changelist_view根据 django 版本检查参数。