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_DIRSTEMPLATE_LOADERS项目设置是这样的:

TEMPLATE_DIRS = (
    PROJECT_PATH.child('templates'),
)

TEMPLATE_LOADERS = (
    'django.template.loaders.filesystem.Loader',
    'django.template.loaders.app_directories.Loader',
)

【讨论】:

以上是关于Django 1.6 管理面板自定义的主要内容,如果未能解决你的问题,请参考以下文章

管理面板中未调用 Django 自定义用户管理器

如何在 django 管理面板中完全自定义 sidebar_menu?

如何在django管理面板中访问Google Analytics?

如何在管理面板中第一次登录django员工用户?

如何在 Wordpress 管理面板中创建自定义 HTML 表单?

`Django 管理`到项目模板中的自定义标题