下面是使用grappelli为django admin后台添加模板的完整攻略。
1. 安装grappelli
首先,需要安装grappelli,在命令行中使用pip安装:
pip install django-grappelli
安装完成后,在项目的settings.py
中加入grappelli的应用:
INSTALLED_APPS = [
# ...
'grappelli',
'django.contrib.admin',
# ...
]
并在urls.py
中加入grappelli的路由:
from django.urls import path, include
from django.contrib import admin
from django.conf.urls.static import static
from django.conf import settings
import grappelli
urlpatterns = [
# ...
path('admin/', include('grappelli.urls')),
path('admin/', admin.site.urls),
# ...
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
2. 添加grappelli的模板
接下来,需要添加grappelli的模板,方法是在项目的根目录下新建一个templates
文件夹,并在其中新建admin
文件夹,最终的目录结构如下:
|- your_project/
|---- templates/
|-------- admin/
|------------ base_site.html
其中,base_site.html
是grappelli的模板文件,我们可以在其中添加自己的样式和脚本。下面是一个示例,将grappelli的顶部导航栏改为白色背景,字体为蓝色:
{% extends "admin/base.html" %}
{% load static %}
{% block extrastyle %}
{{ block.super }}
<link rel="stylesheet" type="text/css" href="{% static 'grappelli_custom.css' %}">
{% endblock %}
{% block nav-global %}
<div id="header" style="background-color: white; color: blue;">
<div class="container_12">
<div class="black right energy">
{% url 'admin:password_change' as password_change_url %}
{% if password_change_url %}
| <a href="{{ password_change_url }}">Change Password</a>
{% endif %}
| {% trans "Logged in as" %} <strong>{{ user }}</strong> (
{% if user.is_superuser %}
<a href="{% url 'admin:logout' %}?next={{ request.path }}">{% trans "Log out" %}</a>
{% else %}
<a href="{% url 'admin:logout' %}?next={{ request.path }}">{% trans "Log out" %}</a>
{% endif %}
)
</div>
</div>
</div>
{% endblock %}
在这个示例中,我们首先继承了grappelli的基础模板admin/base.html
,并在extrastyle
块中添加了自定义的样式表grappelli_custom.css
。接着,在nav-global
块中修改了grappelli的顶部导航栏,将背景色改为白色,字体颜色改为蓝色。注意,这里我们使用了蓝色的硬编码,实际应用中应该定义为一个颜色常量或变量。
3. 给其他页面添加模板
除了修改grappelli的模板外,我们还可以为其他页面(如登录页、密码重置页等)添加自定义的模板。这可以通过继承grappelli的模板实现。例如,我们为登录页添加一个自定义的背景图片,步骤如下:
- 在
templates
文件夹中新建一个registration
文件夹,并在其中添加一个login.html
文件,路径如下:
|- your_project/
|---- templates/
|-------- registration/
|------------ login.html
- 在
login.html
中继承grappelli的登录模板,并在其中添加自定义的样式。
```html
{% extends "admin/login.html" %}
{% load static %}
{% block extrahead %}
{{ block.super }}
{% endblock %}
```
在这个示例中,我们通过在extrahead
块中添加样式,将页面背景设置为一个图片,并且使用{% static %}
模板标签来引用静态文件。
以上就是使用grappelli为django admin后台添加模板的完整攻略和两个示例了。希望可以帮助到你!
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:使用grappelli为django admin后台添加模板 - Python技术站