如何更改Django管理员CSS样式和字体?

时间:2019-03-01 11:08:10

标签: 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.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;
}

最后,我将admin-extra放入\ templates \ base_site.html中名为base_site.css的文件中,其内容如下:

{% 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

# Register your models here.
from .models import *




@admin.register(Ticket)
class TicketAdmin(admin.ModelAdmin):
    list_display = ('id','title','body','answer')




@admin.register(Activation)
class ActivationAdmin(admin.ModelAdmin):
    list_display = ('activecode','user_phone','createtime')
    list_filter =  ('activecode','user_phone','createtime')
    search_fields =  ('activecode','user_phone','createtime')


@admin.register(App)
class AppAdmin(admin.ModelAdmin):
    list_display = ('version','versionurl','bonprice','rahnama')
    list_filter = ('version','versionurl','bonprice','rahnama')
    search_fields = ('version','versionurl','bonprice','rahnama')

@admin.register(Bid)
class BidAdmin(admin.ModelAdmin):
    list_display = ('user','bidtime','competition','maxbon','bonnumber')
    list_filter = ('user','bidtime','competition','maxbon','bonnumber')
    search_fields = ('user','bidtime','competition','maxbon','bonnumber')

3 个答案:

答案 0 :(得分:1)

您应该覆盖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)

答案 1 :(得分:0)

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

  • 模板
    • 管理员
      • base_site.html

{%扩展了“ admin / base.html”%}

 {% load static from staticfiles %}

 {% load i18n grp_tags %}

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

 {% block extrastyle %}

 <link rel="stylesheet" type="text/css" href="{% static "css/admin-extra.css" 
 %}" /> {% endblock %}

{% block branding %}

{# Use the div#grp-branding for branding elements, e.g. a logo #}

{# <div id="grp-branding"></div> #}

{% endblock %}

{% block nav-global %}

{%endblock%}

答案 2 :(得分:0)

我不确定您是否仍然存在此问题,或者版本是否使事情有所不同,但是我认为这可以解决问题。

https://docs.djangoproject.com/en/3.0/howto/static-files/

根据上述文档,.css作为静态文件与.htmls放在不同的目录中。如果您具有与官方示例相同的配置,则可以在app文件夹下创建一个名为“ static”的目录,并将您的CSS文件放在此处。 {% static %}指向该文件夹。因此,如果您在HTML中编写{% static "css/admin-extra.css" %},则CSS应该在APP_FOLDER/static/css/admin-extra.css中。

希望它能起作用。