【问题标题】:How to add custom CSS properties like font-size to all the Django admin pages?如何将自定义 CSS 属性(如字体大小)添加到所有 Django 管理页面?
【发布时间】:2020-08-09 03:43:17
【问题描述】:

我正在开发 Django。我想一次性将自定义 CSS 属性(如字体大小)添加到所有 Django 管理页面,如用户更改页面、用户添加页面等,这样我就不必放置为每个页面单独设置不同的 CSS 属性。

那么有什么办法吗?

提前致谢!!

【问题讨论】:

  • This 可能会对您有所帮助。

标签: css django


【解决方案1】:

是的,你可以这样做。

为此,首先打开您的 settings.py 文件并搜索 TEMPLATES 列表。然后为 DIRS 键添加一个值:

os.path.join(BASE_DIR, 'templates/')

所以你的整个TEMPLATES 列表应该是这样的:

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, 'templates/')],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

之后,在所有应用程序文件夹所在的主目录中创建一个名为 templates 的文件夹(如果未创建),然后在该文件夹下创建另一个名为 admin.So templates > admin 的文件夹。

现在在 admin 文件夹下按名称创建一个 html 文件:base.html

现在在base.html 文件中添加以下代码:



{% load i18n static %}<!DOCTYPE html>
{% get_current_language as LANGUAGE_CODE %}{% get_current_language_bidi as LANGUAGE_BIDI %}
<html lang="{{ LANGUAGE_CODE|default:"en-us" }}" {% if LANGUAGE_BIDI %}dir="rtl"{% endif %}>
<head>
<title>{% block title %}{% endblock %}</title>
<link rel="stylesheet" type="text/css" href="{% block stylesheet %}{% static "admin/css/base.css" %}{% endblock %}">


{% block extrastyle %}




    <link rel="stylesheet" type="text/css" href="{% static 'MyCSS.css' %}" />




{% endblock %}


{% if LANGUAGE_BIDI %}


    <link rel="stylesheet" type="text/css" href="{% block stylesheet_rtl %}{% static "admin/css/rtl.css" %}{% endblock %}">{% endif %}
{% block extrahead %}{% endblock %}
{% block responsive %}
    <meta name="viewport" content="user-scalable=no, width=device-width, initial-scale=1.0, maximum-scale=1.0">
    <link rel="stylesheet" type="text/css" href="{% static "admin/css/responsive.css" %}">
    {% if LANGUAGE_BIDI %}<link rel="stylesheet" type="text/css" href="{% static "admin/css/responsive_rtl.css" %}">{% endif %}
{% endblock %}
{% block blockbots %}<meta name="robots" content="NONE,NOARCHIVE">{% endblock %}
</head>
{% load i18n %}

<body class="{% if is_popup %}popup {% endif %}{% block bodyclass %}{% endblock %}"
  data-admin-utc-offset="{% now "Z" %}">

<!-- Container -->
<div id="container">

    {% if not is_popup %}
    <!-- Header -->
    <div id="header">
        <div id="branding">
        {% block branding %}{% endblock %}
        </div>
        {% block usertools %}
        {% if has_permission %}
        <div id="user-tools">
            {% block welcome-msg %}
                {% trans 'Welcome,' %}
                <strong>{% firstof user.get_short_name user.get_username %}</strong>.
            {% endblock %}
            {% block userlinks %}
                {% if site_url %}
                    <a href="{{ site_url }}">{% trans 'View site' %}</a> /
                {% endif %}
                {% if user.is_active and user.is_staff %}
                    {% url 'django-admindocs-docroot' as docsroot %}
                    {% if docsroot %}
                        <a href="{{ docsroot }}">{% trans 'Documentation' %}</a> /
                    {% endif %}
                {% endif %}
                {% if user.has_usable_password %}
                <a href="{% url 'admin:password_change' %}">{% trans 'Change password' %}</a> /
                {% endif %}
                <a href="{% url 'admin:logout' %}">{% trans 'Log out' %}</a>
            {% endblock %}
        </div>
        {% endif %}
        {% endblock %}
        {% block nav-global %}{% endblock %}
    </div>
    <!-- END Header -->
    {% block breadcrumbs %}
    <div class="breadcrumbs">
    <a href="{% url 'admin:index' %}">{% trans 'Home' %}</a>
    {% if title %} &rsaquo; {{ title }}{% endif %}
    </div>
    {% endblock %}
    {% endif %}

    {% block messages %}
        {% if messages %}
        <ul class="messagelist">{% for message in messages %}
          <li{% if message.tags %} class="{{ message.tags }}"{% endif %}>{{ message|capfirst }}</li>
        {% endfor %}</ul>
        {% endif %}
    {% endblock messages %}

    <!-- Content -->
    <div id="content" class="{% block coltype %}colM{% endblock %}">
        {% block pretitle %}{% endblock %}
        {% block content_title %}{% if title %}<h1>{{ title }}</h1>{% endif %}{% endblock %}
        {% block content %}
        {% block object-tools %}{% endblock %}
        {{ content }}
        {% endblock %}
        {% block sidebar %}{% endblock %}
        <br class="clear">
    </div>
    <!-- END Content -->

    {% block footer %}<div id="footer"></div>{% endblock %}
</div>
<!-- END Container -->

</body>
</html>

然后转到静态文件夹并按名称创建一个文件:MyCSS.css

现在在 MyCSS.css 文件中,您可以根据需要为任何元素添加任何 css 属性。

如果您不知道要使用哪个 CSS 选择器,则可以按 ctrl+shift+c(在 Windows 上)并将鼠标悬停在您要查找 css 选择器的元素上,如下所示:

这就是你所要做的。

注意:如果您想更改 css 文件名,请不要忘记更改 base.html 文件中 {% block extrastyle %} 块中的 css 文件名。

【讨论】:

    【解决方案2】:

    您还可以使用Media 类为 Django 管理页面添加自定义 css 和 javascript。

    【讨论】:

      猜你喜欢
      • 2011-12-29
      • 1970-01-01
      • 2010-11-23
      • 2019-10-08
      • 1970-01-01
      • 1970-01-01
      • 2020-06-08
      • 1970-01-01
      • 2015-10-29
      相关资源
      最近更新 更多