raj*_*pit 65 django django-admin
我想改变admin django中的某些css,比如base.css.在django库中直接更改会更好吗?如何以最佳方式覆盖它?
Tor*_*cht 94
这取决于你想做的很多事情.虽然首先:不要直接在Django管理员中覆盖它.你认为有两种选择是合理的:
{% block extrastyle %}{% endblock %}在django/contrib/admin/templates/admin/base.html作为一个例子.Media元类添加其他样式admin.py.在这里查看示例:Run Code Online (Sandbox Code Playgroud)class MyModelAdmin(admin.ModelAdmin): class Media: js = ('js/admin/my_own_admin.js',) css = { 'all': ('css/admin/my_own_admin.css',) }
ela*_*ver 21
这个解决方案适用于管理站点,我认为这是最干净的方式,因为它覆盖了base_site.html升级django时不会改变的方式.
在模板目录admin中创建一个名为的文件夹,创建一个名为的文件base_site.html.
在css名为的文件下的静态目录中创建admin-extra.css.
在其中写下您想要的所有自定义CSS,例如:body{background: #000;}.
将其粘贴在base_site.html:
{% extends "admin/base.html" %}
{% load static from staticfiles %} # This might be just {% load static %} in your ENV
{% 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 %}
而已!你完成了
tiv*_*net 20
settings.py,确保您的应用程序在管理员之前列出INSTALLED_APPS.(your-app)/templates/admin/base_site.html并将<style>块放入{% block extrahead %}例:
{% extends "admin/base_site.html" %}
{% block extrahead %}
    <style>
        .field-__str__ {
            font-family: Consolas, monospace;
        }
    </style>
{% endblock %}
Rya*_*len 14
在静态目录中,创建一个static/admin/css/base.css文件.
首先粘贴Django的默认Admin CSS,然后根据需要进行调整.
如果您想要一个全局范围,并且不想考虑覆盖模板,那么mixin确实可以很好地工作。将此代码放在您想要的任何地方:
class CSSAdminMixin(object):
    class Media:
        css = {
            'all': ('css/admin.css',),
        }
然后,admin.css使用覆盖来制作一个名为的CSS文件,例如:
select[multiple] {
    resize: vertical;
}
然后,在任何所需的模型中,执行以下操作:
class MyModelAdmin(admin.ModelAdmin, CSSAdminMixin):
然后您会准备就绪。
| 归档时间: | 
 | 
| 查看次数: | 54590 次 | 
| 最近记录: |