覆盖Django中的特定admin css文件

时间:2011-10-19 10:14:17

标签: python css django django-admin

覆盖管理模板就像在模板目录中创建文件夹admin并将要覆盖的模板文件复制到其中一样简单。我只想玩管理样式表,所以我在我的静态文件夹中创建了一个文件夹admin并将css/base.css放入其中。与模板解决方案不同,这似乎不起作用。

那么有没有办法覆盖django.contrib.admin的单个css文件,就像你可以覆盖模板一样?如果不是,那么覆盖css文件的最佳解决方案是什么?我正在寻找一种解决方案,不是将所有管理媒体文件复制到我的项目中,而是更改管理员的静态目录

3 个答案:

答案 0 :(得分:10)

我正在做的是覆盖base_site.html模板,如下所示:

{% block blockbots %}
<link rel="stylesheet" type="text/css" href="/media/css/my_admin.css" />
{{ block.super }}
{% endblock %}

我将CSS放在blockbots而不是extrahead中,以确保在最后加载,因此它将覆盖所有其他CSS。

答案 1 :(得分:2)

  

我正在寻找一种解决方案,不会将所有管理媒体文件复制到我的项目中并更改管理员的静态目录

我认为没有其他选择。您将媒体文件复制到新目录中,并在启动服务器时传递adminmedia命令行参数,如

python manage.py runserver --adminmedia=./myadminmedia

在任何情况下,当您在生产服务器上运行时,必须从一个良好的静态服务器服务器提供管理媒体,为此,您可以指向此新路径。

文档参考:https://docs.djangoproject.com/en/1.3/ref/django-admin/#django-admin-option---adminmedia

答案 2 :(得分:0)

可能你可以破解你的urls.py文件,只指向一个从本地文件夹提供的媒体URL,而其他的则从Django目录提供(在开发模式下)。