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

yizhihongxing

下面是使用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日

相关文章

  • 利用Python创建第一个Django框架程序

    下面是“利用Python创建第一个Django框架程序”的完整攻略。 1. 安装Python和Django 首先,需要安装Python和Django。在安装之前,需要确认一下本地是否已经安装了Python。如果你已经安装了Python,那么可以跳过这一步。 在Windows环境下,可以使用“Python官网”或“Anaconda”等软件安装包来进行Pytho…

    Django 2023年5月16日
    00
  • Django中的缓存机制及其实现方法

    什么是缓存? 简单来说,缓存就是将计算结果或数据存储到内存或其他更快存储介质中,以便后续请求快速访问,提高性能和响应速度。类似的概念常被用于Web框架和数据库中,用以优化性能和响应速度。 Django中的缓存机制 Django提供了多个缓存选择和多种缓存技术,包括内存缓存,数据库缓存,文件系统缓存等。Django默认使用的是基于内存的缓存,在Django的s…

    Django 2023年3月13日
    00
  • Django—ajax

    知识点复习: Python序列化 字符串 = json.dumps(对象) 对象->字符串 对象 = json.loads(字符串) 字符串->对象 JavaScript: 字符串 = JSON.stringify(对象) 对象->字符串 对象 = JSON.parse(字符串) 字符串->对象 应用场景: 数据传输时, 发送:字符串…

    Django 2023年4月12日
    00
  • Django-django-redis使用

    自定义连接池 这种方式跟普通py文件操作redis一样,代码如下: views.py import redis from django.shortcuts import render,HttpResponse from utils.redis_pool import POOL def index(request): conn = redis.Redis(co…

    Django 2023年4月10日
    00
  • Python3+django2.0+apache2+ubuntu14部署网站上线的方法

    下面是“Python3+django2.0+apache2+ubuntu14部署网站上线的方法”的完整攻略。 准备工作 在开始之前,需要先准备好以下内容: 一台Ubuntu 14的服务器。 Python 3 和 pip 已安装。 Django 2.0 和其他所需的Python库已安装。 Apache2 和 mod_wsgi已安装。 步骤一:创建Django项…

    Django 2023年5月15日
    00
  • Django-orm数据库查询语句

    Django-orm数据库查询语句 #### orm查询用法大全 ### 数据库表 class UserInfo(models.Model): ### 主键自增id不用写, 默认会加上 name = models.CharField(max_length=32, null=True) age = models.IntegerField(null=True) …

    Django 2023年4月10日
    00
  • django使用uwsgi启动

    django默认是wsgi启动,不能利用到多核执行效率很低,通过uwsgi来解决这个问题。   python虚拟环境安装配置: https://www.cnblogs.com/zezhou/p/14509198.html python虚拟环境使用操作: https://www.cnblogs.com/zezhou/p/14509203.html   安装uw…

    Django 2023年4月11日
    00
  • Django REST Framework JWT

    pip install djangorestframework-jwt 配置setting ########### 1、在INSTALLED_APPS中加入’rest_framework.authtoken’, ################# INSTALLED_APPS = [ ”’ ‘rest_framework.authtoken’, # ”’…

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