使用grappelli为django admin后台添加模板

下面是使用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的模板实现。例如,我们为登录页添加一个自定义的背景图片,步骤如下:

  1. templates文件夹中新建一个registration文件夹,并在其中添加一个login.html文件,路径如下:

|- your_project/
|---- templates/
|-------- registration/
|------------ login.html

  1. login.html中继承grappelli的登录模板,并在其中添加自定义的样式。

```html
{% extends "admin/login.html" %}

{% load static %}

{% block extrahead %}
{{ block.super }}

{% endblock %}
```

在这个示例中,我们通过在extrahead块中添加样式,将页面背景设置为一个图片,并且使用{% static %}模板标签来引用静态文件。

以上就是使用grappelli为django admin后台添加模板的完整攻略和两个示例了。希望可以帮助到你!

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:使用grappelli为django admin后台添加模板 - Python技术站

(0)
上一篇 2023年5月16日
下一篇 2023年5月16日

相关文章

  • django:查询,反向查询

    先看模型: 大的分类(主表) class Category(models.Model): name = models.CharField(max_length=20, null=True) 小的分类(子表) class SmartCategory(models.Model): name = models.CharField(max_length=20, nu…

    Django 2023年4月13日
    00
  • django之cookie、session和ajax

       cookie是什么?          保存在客户端浏览器上的键值对   {k:v}          cookie依附在请求头或响应头中出现          发送请求时,会自动携带自己网站的cookie    应用:          实现登录          投票 1.1 获取Cookie request.COOKIES[‘key’] requ…

    Django 2023年4月13日
    00
  • pycharm中启动Django方法

    1、找到Edit Configurations   2、Parameters处添加  runserver 0.0.0.0:8080   3、运行成功   

    Django 2023年4月11日
    00
  • Django中常用的查询数据方法及查询对象的条件详解

    以下是Django中常用的查询数据方法及查询对象的条件详解的完整攻略。 1. 查询数据方法 Django中常用的查询数据方法有两种,分别是: 1.1. .all() 使用 .all() 可以获得一个包含所有对象的 QuerySet,例如: from myapp.models import MyModel my_objects = MyModel.object…

    Django 2023年5月16日
    00
  • 离线部署Django工程项目迁移到无网络环境

      已有环境 CentOS 7 Python 3.7 Django 2.1 主要用到下面三个命令: # 导出依赖 pip freeze > requirements.txt # 按照依赖下载离线包 pip download -d packagesDir -r requirements.txt # 安装离线包 whl包、tgz包 单个包、目录下的包 pi…

    Django 2023年4月10日
    00
  • Django WebEditor(CKeditor)

    涉及到的文件会在文章结尾给出下载地址!   1) 将 ckeditor 放在某个位置,只要你的settings可以搜索到,比如,我放在目录第一层,setting设置如下: INSTALLED_APPS = ( ‘ckeditor’, ) 2) 将静态文本放在static下。 目录结构应该为 : –static/    –ckeditor/        …

    Django 2023年4月13日
    00
  • django学习-16.返回给前端页面数据为json数据类型的3种方案

    1.前言 2.JsonResponse类的源码简单分析 2.1.JsonResponse类的源码如下所示 2.2.JsonResponse类的构造函数里的每个入参的大概含义和作用 3.【方案1:使用方法serializers】的具体方案实现流程 3.1.第一步:先编写相关代码内容的视图函数 3.2.第二步:在任一浏览器访问该网址【http://127.0.0…

    Django 2023年4月13日
    00
  • 在ubuntu16上进行nginx+uwsgi+django部署的简要步骤

    网上有很多部署教程,说了一大堆,遇到坑还是要自己一个个解决,这里有几个比较重要的坑大家一定要注意。 1、首先要安装python和python-dev环境,如果没有安装python-dev后面安装有些依赖要报错。这是第一个坑。 apt-get install python python-dev pip 2、安装uwsgi要先安装gcc的编译环境。这是第二个坑。…

    Django 2023年4月13日
    00
合作推广
合作推广
分享本页
返回顶部