Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/347.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django管理员:若列表中只有一个对象,则重定向到对象更改页面_Python_Django_Django Admin - Fatal编程技术网

Python Django管理员:若列表中只有一个对象,则重定向到对象更改页面

Python Django管理员:若列表中只有一个对象,则重定向到对象更改页面,python,django,django-admin,Python,Django,Django Admin,我正在将Django用于一个应用程序,并想知道管理中的一个选项。 如果列表视图中只有一个对象,django admin是否可以重定向到该对象的详细信息页面 比如说,, 如果仅此对象存在: 立即重定向到此对象上的更改视图,而无需用户单击该对象 我没有使用任何自定义视图。经过两个小时的搜索,我找不到任何解决方案 谢谢 你可以试试这个 def changelist_view(self, request, extra_context=None): if self.model.objects.a

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

比如说,, 如果仅此对象存在:

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

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

谢谢

你可以试试这个

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)
同时检查基于django版本的
changelist\u视图
参数。

您可以尝试此操作

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)

同时检查基于django版本的
changelist\u视图
参数。

您可以覆盖。在这里,检查给定模型是否只存在一个对象。如果是,则重定向到其更改页面。您可以覆盖。在这里,检查给定模型是否只存在一个对象。如果是,则重定向到其更改页面。谢谢!通过一点定制,它解决了我的问题!谢谢通过一点定制,它解决了我的问题!