Django 1.6 管理面板自定义
Posted
技术标签:
【中文标题】Django 1.6 管理面板自定义【英文标题】:Django 1.6 admin panel customization 【发布时间】:2014-02-16 20:46:18 【问题描述】:现在我正在开发一个反馈应用程序,
因此,管理员必须查看来自用户的消息,过滤它们(已读/未读)并将它们标记为重要。 我已经完成了我需要的所有功能,但我无法自定义我的标题。 例如。 更改列表中有一个默认标题(见截图,此标题被选中), 如何删除这些标题或自定义它们?
非常感谢。
【问题讨论】:
【参考方案1】:实际上,@mayankTUM 的答案是不正确的。它不遵循django design philosophies 并且不应该实施(@mayankTUM 自己提到了他的解决方案的问题之一,但是还有很多很多)!
基本上,您需要做的事情可以通过overriding the admin templates来完成。因为有一些问题(我稍后会解释),这就是 我这样做是为了解决您的要求:
-
在我的
templates
文件夹中创建了一个名为admin
的目录。
从 <django>\contrib\admin\templates\admin\change_list.html
复制了 change_list.html
模板。
在新 change_list.html
的末尾添加以下内容:% block content_title %Hello world!% endblock %
现在,它将打印“Hello world!”而不是“Select ... to change”。
我必须注意到复制 整个 change_list.html
不是 DRY - 如果我只是创建文件,让它从 admin/change_list.html
扩展并添加 @987654335 会更好@。然而这不起作用并且会导致无限递归(请查看这个错误报告https://code.djangoproject.com/ticket/15053)——这就是我之前提到的问题。以下问题讨论了复制整个模板的更好解决方案:
Django: Overriding AND extending an app template 和 How to override and extend basic Django admin templates? 和 django override admin template
PS:我的TEMPLATE_DIRS
和TEMPLATE_LOADERS
项目设置是这样的:
TEMPLATE_DIRS = (
PROJECT_PATH.child('templates'),
)
TEMPLATE_LOADERS = (
'django.template.loaders.filesystem.Loader',
'django.template.loaders.app_directories.Loader',
)
【讨论】:
以上是关于Django 1.6 管理面板自定义的主要内容,如果未能解决你的问题,请参考以下文章
如何在 django 管理面板中完全自定义 sidebar_menu?
如何在django管理面板中访问Google Analytics?