我在django
管理面板中有幾個配置對象。 他們是按以下順序在django管理面板中重新排序模型對象
- 電子郵件配置
- 一般配置
- 網絡配置
每個對象都可以單獨配置,但所有這些都包含在General config
上市。所以基本上你主要需要General config
,所以我想把它移到頂端。 我知道如何在模型本身中排序字段,但如何重新排序模型?
我在django
管理面板中有幾個配置對象。 他們是按以下順序在django管理面板中重新排序模型對象
每個對象都可以單獨配置,但所有這些都包含在General config
上市。所以基本上你主要需要General config
,所以我想把它移到頂端。 我知道如何在模型本身中排序字段,但如何重新排序模型?
我沒有看到一個明顯的解決方案 - 模型按照它們的_meta.verbose_name_plural排序,這發生在AdminSite.index視圖內,沒有明顯的位置掛鉤自定義代碼,缺少子類化AdminSite類並提供你自己的索引方法,但這是一種巨大的單一方法,非常不友好。
所以我剛剛寫了一個django包,它可以讓你重新命名django應用程序列表/重命名應用程序標籤和模型名稱(包括第三方應用程序) - 您可以從這裏下載: https://github.com/mishbahr/django-modeladmin-reorder – mishbah
我發現this snippet for reordering models in the django admin panel - 它爲我們工作(雖然檢查出的片段下面的意見更新,使其使用Django> = 1.4工作)
而對於較長期有這個django bug report about the ordering of models within apps。錯誤報告在寫這個答案時是開放的。
所以我只是寫了Django的包,讓你重新排序Django應用程序列表中/重命名應用標籤和型號名稱(包括第三方應用程序) - 你可以從這裏下載:
如果您不介意使用骯髒的詭計,請將您的模型的verbose_name_plural
預先加上一定數量的隱形zero-width spaces。例如。將1個零寬度空間的「電子郵件配置」預先設置爲1,將2配置爲「常規配置」,將3配置爲「網絡配置」。這實際上是最簡單的方法,我還沒有發現任何缺點。
我沒有看到一個明顯的解決方案 - 模型按照它們的_meta.verbose_name_plural排序,這發生在AdminSite.index視圖內,沒有明顯的位置掛鉤自定義代碼,缺少子類AdminSite'類,並提供你自己的'index'方法,然而這是一個巨大的單一方法,_very_繼承不友好。 – lanzz
確定:(你能寫一個答案,這是不是一個合理的事情,所以我可以關閉這個問題嗎? – axe