【问题标题】:Admin Interface Theme-ing?管理界面主题化?
【发布时间】:2018-12-31 09:28:15
【问题描述】:

我想知道管理界面的主题化程度如何?我遇到了这个doc,它似乎在谈论几个选项。

这是 django 管理默认界面的巨大进步,但我想知道是否有人知道替换的任何下降。

例如,我最讨厌的是内容框的大小。

见附件。身体的大小是由数据模型驱动的吗?我搞砸了?还是我错过了什么?

【问题讨论】:

    标签: django wagtail wagtail-streamfield


    【解决方案1】:

    是的,这是可能的。据我所知,公开可用的主题并不多。我修改了我们大多数客户的默认主题。这不是一次大修,只是为了让我们的客户感觉更像是一种品牌化的体验。

    首先,您需要安装 Wagtail 样式指南。

    INSTALLED_APPS = (
        ...
        'wagtail.contrib.styleguide',
    )
    

    您可以在此处阅读有关样式指南的更多信息:http://docs.wagtail.io/en/latest/contributing/styleguide.html

    然后您就可以进入您的管理员 > 设置 > 样式指南(链接看起来像这样:http://localhost:8000/admin/styleguide/

    然后我要做的是右键单击要设置样式的部分,在浏览器中单击“检查”并查看要编辑的元素和样式。这似乎是设置您正在寻找的样式的最快方式。

    在开始设置样式之前,您需要一个 CSS 文件供您的管理员使用。为此,我们可以使用钩子。

    from django.contrib.staticfiles.templatetags.staticfiles import static
    from django.utils.html import format_html
    
    from wagtail.core import hooks
    
    
    # Register a custom css file for the wagtail admin.
    @hooks.register("insert_global_admin_css", order=100)
    def global_admin_css():
        """Add /static/css/wagtail.css."""
        return format_html('<link rel="stylesheet" href="{}">', static("css/wagtail.css"))
    

    您可以在此处阅读有关 Wagtail 钩子的更多信息:http://docs.wagtail.io/en/latest/reference/hooks.html

    在加载主 css 文件后,这将在您的管理页面的 &lt;head&gt; 添加一个 &lt;link /&gt; 元素。

    现在您需要做的就是创建一个名为 wagtail.css 的新文件,确保它位于您的 /static/css/ 目录中(即 /static/css/wagtail.css),并且您可以覆盖所有样式。请记住参考样式指南!

    编辑:如果您想深入了解管理员自定义,我已经制作了一个关于此主题的视频。 https://www.youtube.com/watch?v=5flSOmcWGfk&list=PLMQHMcNi6ocsS8Bfnuy_IDgJ4bHRRrvub&index=44

    【讨论】:

    • 谢谢,这很有帮助。在这个和我在原始帖子中链接的 wagtail 文档之间,我想出了足够的方法来让事情变得丑陋不堪,这基本上是一个胜利,因为我可以修改页面上的几乎所有内容。现在,我只需要一些有品味的人来挑选颜色/徽标等。
    • 还有一个问题。文档中的最后一个花絮:docs.wagtail.io/en/v2.0/advanced_topics/customisation/… 引用扩展反应组件。有没有人使用它或有任何经验?
    • 我还不需要对 React 做任何事情(在 Wagtail Admin 中)。 ://
    • 感谢您的所有帮助和建议。这将使我大部分时间。 :D