django:隐藏管理页面上没有实例的模型类型

时间:2010-09-05 19:00:25

标签: django

假设我有一个使用ModelA,ModelB和ModelC的应用程序

对于我的应用程序管理页面(/ admin / app),如何挂钩“App管理”页面的显示,以便隐藏模型类型为空(没有实例)?

1 个答案:

答案 0 :(得分:0)

这是一个很大的问题,因为您必须根据每个{{1}的每个模型的数据库/ ORM查询(至少为count())的结果动态注册/取消注册应用程序包含。

每次您查看管理员。

虽然这本身就令人不愉快,但请记住,每个应用程序的INSTALLED_APPS都是在服务器重启/重新加载时(IIRC)处理的,所以你不能希望能够像那些数据库查找一样可爱的东西。因为它只运行一次而不反映模型当前存储在数据库中的对象的实际状态。

更好的举动:离开吧。如果没有要查看给定模型的对象,则没有要查看给定模型的对象。

如果你担心你的客户/用户在那里制作新模型,那么这就是用户教育和管理员用户权限的组合,你可以理清。

正如一些地方所说:“管理员不是你的应用程序。”如果定制超出了微不足道的程度,那么就该编写自己的视图了。您仍然可以通过覆盖基本管理模板将它们挂钩到管理站点,甚至可以从与管理员其他人相同的根路径提供它们。