使用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自带调试服务器的使用详解

    下面我来详细讲解“Django自带调试服务器的使用详解”。 什么是Django自带调试服务器? Django是一个高效的Python Web框架,它提供了一个开发Web应用的强大工具。Django自带调试服务器是Django框架提供的一种用于本地开发和测试的轻量级服务器,它通常被称为“开发服务器”。开发服务器可以允许开发人员快速地开发和测试Web应用,不需部…

    Django 2023年5月16日
    00
  • 【Django入坑之路】Django后台上传图片,以及前端的显示

    #setting配置: MEDIA_URL = “/media/” MEDIA_ROOT = os.path.join(BASE_DIR, “media”) #注册完admin后,在后台上传图片的时候,会自动将图片保存到这个media文件夹下,#upload_to—-在media文件夹下再创建一个文件夹 class Projects(models.Mod…

    Django 2023年4月13日
    00
  • Django JWT登录认证机制

    Django REST framework JWT 在用户注册或登录后,我们想记录用户的登录状态,或者为用户创建身份认证的凭证。我们不再使用Session认证机制,而使用Json Web Token认证机制。 很多公司开发的一些移动端可能不支持cookie,并且我们通过cookie和session做接口登录认证的话,效率其实并不是很高,我们的接口可能提供给多…

    Django 2023年4月17日
    00
  • Django实现前后端登录

    那我来详细讲解一下“Django实现前后端登录”的完整攻略。 首先,我们需要确定需要实现的功能:前后端登录验证,即前端用户输入用户名和密码后,通过后端验证,实现登录并跳转到指定页面。具体步骤包括以下几个方面: 前端展示 在前端展示中,我们需要使用forms模块创建表单,确保用户可以输入用户名和密码,并将表单数据提交到后端进行验证。具体实现请参考以下示例代码:…

    Django 2023年5月16日
    00
  • Django后端项目—-RESTful API

     一. 什么是RESTful  REST与技术无关,代表的是一种软件架构风格,REST是Representational State Transfer的简称,中文翻译为“表征状态转移” REST从资源的角度类审视整个网络,它将分布在网络中某个节点的资源通过URL进行标识,客户端应用通过URL来获取资源的表征,获得这些表征致使这些应用转变状态 所有的数据,不管…

    Django 2023年4月12日
    00
  • Django如何简单快速实现PUT、DELETE方法

    要在Django中实现PUT和DELETE方法,需要进行如下步骤: 安装django-cors-headers Django默认不支持跨域请求,因此需要安装django-cors-headers才能使用PUT和DELETE方法。可以通过pip命令进行安装: pip install django-cors-headers 修改settings.py 在INST…

    Django 2023年5月16日
    00
  • 【Python web 开发】django rest framwork 的token 登录和原理

      背景: 有些接口比如提交订单,获取用户列表是要用到用户信息的,是要用户登录后才能进行的 用户登录在前后端分离系统中与我们之前基于模板template进行开发是有区别的 思考一个问题:为什么我们的django  rest framwork 会有登录和退出功能呢? 因为,这里有配置哦 这里有 login 和loginout,里面的 login 调用了logi…

    Django 2023年4月12日
    00
  • django中修改QueryDict数据类型和转成普通字典

    简介 在正常的请求/响应周期中访问时,request.POST和request.GET上的QueryDict将是不可变的. 要获得可变版本,您需要使用QueryDict.copy()或者._mutable = True 第一种方式 用request.POST调用_mutable并修改为True reuqets.POST._mutable = True 第二种…

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