2017-08-27 53 views
0

我正在使用Django作爲應用程序,並且想知道管理員中的選項。 如果只有一個存在於列表視圖中,django admin可以重定向到對象的詳細信息頁面嗎?Django管理員:重定向到對象更改頁面,如果列表中只有一個存在

例如, 如果僅此對象存在: enter image description here

立即重定向到該對象上的變化視圖,而無需用戶點擊的對象。

我沒有使用任何自定義視圖。搜索2小時後我找不到任何解決方案。

謝謝!

+1

您可以覆蓋['ModelAdmin.changelist_view'](https://docs.djangoproject.com/en/1.11/ref/contrib/admin/#django.contrib.admin.ModelAdmin.changelist_view)。在那裏,檢查給定模型是否只存在一個對象。如果是,則重定向到它的更改頁面。 – xyres

回答

2

你可以試試這個

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_view參數。

+0

謝謝!通過一些定製,它解決了我的問題! – Yarimi

相關問題