【发布时间】:2020-08-09 03:43:17
【问题描述】:
我正在开发 Django。我想一次性将自定义 CSS 属性(如字体大小)添加到所有 Django 管理页面,如用户更改页面、用户添加页面等,这样我就不必放置为每个页面单独设置不同的 CSS 属性。
那么有什么办法吗?
提前致谢!!
【问题讨论】:
-
This 可能会对您有所帮助。
我正在开发 Django。我想一次性将自定义 CSS 属性(如字体大小)添加到所有 Django 管理页面,如用户更改页面、用户添加页面等,这样我就不必放置为每个页面单独设置不同的 CSS 属性。
那么有什么办法吗?
提前致谢!!
【问题讨论】:
是的,你可以这样做。
为此,首先打开您的 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 %} › {{ 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 文件名。
【讨论】:
您还可以使用Media 类为 Django 管理页面添加自定义 css 和 javascript。
【讨论】: