Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何更改django管理css样式和字体?_Python_Django_Django Templates_Django Admin - Fatal编程技术网

Python 如何更改django管理css样式和字体?

Python 如何更改django管理css样式和字体?,python,django,django-templates,django-admin,Python,Django,Django Templates,Django Admin,我正在用django开发一个应用程序 我想自定义django管理界面,但我不能添加自定义字体 我想为波斯语使用自定义字体 以下是我所做的,但没有得到正确的结果: 步骤1: 我在以下目录中创建了一个名为admin-extra.css的css文件: /templates/css/admin-extra.css 在此之后,我在安装的应用程序中更改了django.contrib.admin之前myappname的位置,如下所示: INSTALLED_APPS = [ 'django.cont

我正在用django开发一个应用程序

我想自定义django管理界面,但我不能添加自定义字体

我想为波斯语使用自定义字体

以下是我所做的,但没有得到正确的结果:

步骤1:

我在以下目录中创建了一个名为admin-extra.css的css文件:

/templates/css/admin-extra.css 
在此之后,我在安装的应用程序中更改了django.contrib.admin之前myappname的位置,如下所示:

INSTALLED_APPS = [
    'django.contrib.auth',
    'pool',
    'django.contrib.admin',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'fcm_django'
]
admin-extra.css是这样的:

body {
    margin: 0;
    padding: 0;
    font-size: 40px;
    color: #333;
    background: #fff;
}
{% extends "admin/base.html" %}
{% load static from staticfiles %}
{% block title %}{{ title }} | {{ site_title|default:_('Django site admin') }}{% endblock %}
{% block extrastyle %}{{ block.super }}<link rel="stylesheet" type="text/css" href="{% static "css/admin-extra.css" %}" />{% endblock %}
{% block branding %}
<h1 id="site-name"><a href="{% url 'admin:index' %}">{{ site_header|default:_('Django administration') }}</a></h1>
{% endblock %}


{% block nav-global %}{% endblock %}
最后,我在\templates\base\u site.html中的一个名为base\u site.css的文件中添加了admin extra,其内容如下:

body {
    margin: 0;
    padding: 0;
    font-size: 40px;
    color: #333;
    background: #fff;
}
{% extends "admin/base.html" %}
{% load static from staticfiles %}
{% block title %}{{ title }} | {{ site_title|default:_('Django site admin') }}{% endblock %}
{% block extrastyle %}{{ block.super }}<link rel="stylesheet" type="text/css" href="{% static "css/admin-extra.css" %}" />{% endblock %}
{% block branding %}
<h1 id="site-name"><a href="{% url 'admin:index' %}">{{ site_header|default:_('Django administration') }}</a></h1>
{% endblock %}


{% block nav-global %}{% endblock %}

您应该覆盖
admin.py
文件

from django.contrib import admin
class MyModelAdmin(admin.ModelAdmin):
    class Media:   
        css = {
             'all': ('/templates/css/admin-extra.css ',)
        }


admin.site.register(MyModel,MyModelAdmin)

您需要添加base_site.html,如下所示:-

  • 模板

    • 管理员
      • base_site.html
    {%extends“admin/base.html”%}

    {%load static from staticfiles%}

    {%load i18n grp_标记%}

    {%block title%}{{title}}{%get_site_title%} {%endblock%}

    {%block extrastyle%}

    {%endblock%} {%block-branding%}

    {#使用div#grp branding作为品牌元素,例如徽标#}

    {##}

    {%endblock%}

    {%block nav global%}

    {%endblock%}


我不确定您是否仍然存在此问题,或者版本是否使问题有所不同,但以下是我认为可以解决此问题的方法

根据上面的文档,.css作为一个静态文件放置在不同的目录下,如.htmls。如果您的配置与官方示例相同,您可以在应用程序文件夹下创建一个名为“static”的目录,并将css文件放在那里。
{%static%}
指向该文件夹。因此,如果您在html中编写
{%static“css/admin extra.css”%}
,您的css应该位于
APP\u文件夹/static/css/admin extra.css


希望它能起作用。

我应该为我拥有的每个型号都这样做吗?如果我这样做,主管理页面会被覆盖吗?如果你想覆盖整个html文件,你应该遵循[回答,但你只需更改css文件。是的,你可以覆盖每个模型。你也可以使用BaseAdminModel和媒体选项。请检查浏览器控制台。是否有404 css未找到?你可以共享你的
admin.py
文件吗?我确实这样做了。但是没有发生任何事情。请注意,要使此功能正常运行,应用程序正在运行您将文件
templates/admin/base\u site.html
放置在
INSTALLED\u APPS
设置中的
django.contrib.admin
上方。