我在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