使用django-suit为django 1.7 admin后台添加模板

yizhihongxing

使用django-suit为Django 1.7及以上版本的admin后台添加模板,可以美化后台的外观以及提供更多的功能。下面是步骤:

  1. 安装django-suit:

在终端中运行以下命令,进行安装:

pip install django-suit
  1. 启用django-suit:

在你的settings.py文件中添加以下代码:

INSTALLED_APPS = (
    ...
    'suit',
    'django.contrib.admin',
    ...
)

#设置django-suit作为默认模板引擎
CRISPY_TEMPLATE_PACK = 'bootstrap'
SUIT_CONFIG = {
      'ADMIN_NAME': 'My Admin',
      'HEADER_DATE_FORMAT': 'l, j. F Y', 
      'MENU_ICONS': {
          'sites': 'icon-leaf',
          'auth': 'icon-lock',
      },
      'MENU_OPEN_FIRST_CHILD': True, # Default True
      'MENU_EXCLUDE': ('auth.group',),
      'MENU': (
          'sites',
          {'app': 'auth', 'icon':'icon-lock', 'models': ('user', 'group')},
          {'app': 'catalogue', 'models': ('product', 'category')},
          {'label': 'Settings', 'icon':'icon-cog', 'models': ('auth.user', 'auth.group')},
      ),
      'INDEX_TITLE': 'Site administration',
    }

这里我们采用的是Bootstrap作为模板引擎,通过SUIT_CONFIG中的设置,可以添加一些额外的功能,比如网站名称,菜单项等。

  1. 运行Django项目,并在浏览器中输入地址"localhost:8000/admin",你就可以看到新的后台模板已经生效了,而且非常美观。

  2. 进一步修改模板样式:

通过在settings的SUIT_CONFIG中设置来修改模板的样式。比如:

SUIT_CONFIG = {
  # 修改默认后台模板的标题
  'ADMIN_NAME': 'My Custom Admin',

  # 更改后台导航菜单,去掉原有的三级菜单
  'MENU_OPEN_FIRST_CHILD': True,
  'MENU': (
    {
      'app': 'auth',
      'icon': 'icon-lock',
      'label': 'Authentication',
      'models': (
        'user',
        'group',
      ),
    },
    {
      'app': 'contenttypes',
      'icon': 'icon-list',
      'label': 'Content Types',
      'models': (
        'contenttypes.contenttype',
      ),
    },
    {
      'app': 'sites',
      'icon': 'icon-globe',
      'label': 'Sites',
      'models': (
        'sites.site',
      ),
    },
    {
      'app': 'myapp',
      'icon': 'icon-briefcase',
      'label': 'My App',
      'models': (
        'myapp.mymodel',
      ),
    },
  ),

  # 修改表格中的鼠标悬浮样式
  'LIST_SELECTABLE': True,
  'LIST_SELECTABLE_PER_PAGE': 100,
  'LIST_PER_PAGE': 50,

  # 更改后台顶部导航菜单
  'MENU_ICONS': {
    'sites': 'icon-leaf',
    'auth': 'icon-lock',
    'contenttypes': 'icon-list',
    'myapp': 'icon-briefcase',
  },
  'HEADER_DATE_FORMAT': 'F jS, Y',
  'HEADER_TIME_FORMAT': 'H:i',

  # 使用紧凑型表单
  'FORM_LAYOUT': 'inline',
}

以上为一个例子,这里我们改变了后台菜单项的样式和导航菜单的icon,从而使得后台更加美观和易于操作。

  1. 示例

下面是一个简单的例子,在models.py中创建一个User模型:

from django.contrib.auth.models import AbstractUser

class User(AbstractUser):
    phone = models.CharField(max_length=20)
    address = models.TextField(blank=True, null=True)

    def __str__(self):
        return self.username

然后在admin.py中,添加以下代码:

from django.contrib import admin
from django.contrib.auth.admin import UserAdmin as BaseUserAdmin
from django.utils.translation import gettext as _
from .models import User

class UserAdmin(BaseUserAdmin):
    fieldsets = (
        (None, {'fields': ('username', 'password')}),
        (_('Personal info'), {'fields': ('first_name', 'last_name', 'email', 'phone', 'address')}),
        (_('Permissions'), {'fields': ('is_active', 'is_staff', 'is_superuser', 'groups', 'user_permissions')}),
        (_('Important dates'), {'fields': ('last_login', 'date_joined')}),
    )

    add_fieldsets = (
        (None, {
            'classes': ('wide',),
            'fields': ('username', 'password1', 'password2'),
        }),
    )

    list_display = ('username', 'email', 'first_name', 'last_name', 'phone', 'address', 'is_staff')
    list_filter = ('is_staff', 'is_superuser', 'is_active', 'groups')
    search_fields = ('username', 'first_name', 'last_name', 'email', 'phone', 'address')
    ordering = ('username',)

admin.site.register(User, UserAdmin)

以上代码中,我们通过继承Django的UserAdmin类,定义了一个新的UserAdmin类,在这个类中可以修改用户的默认字段和显示方式。

希望以上内容能对你有所帮助。

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

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

相关文章

  • Python – Django – 使用 Pycharm 连接 MySQL 数据库

    在 Pycharm 的右上方找到 Database 点击 依次点击,选择 MySQL 数据库 点击 Download 下载驱动文件 下载完成后对数据库的相关信息进行填写 填写完成后点击“Test Connection”,如果出现 Successful 就说明连接成功 然后点击“应用”,再点击“确定” 左边这个窗口是写 SQL 语句的地方  例如查询 app0…

    Django 2023年4月10日
    00
  • vscode搭建之python Django环境配置方式

    下面是“vscode搭建之python Django环境配置方式”的完整攻略,包括两条示例说明。 简介 Visual Studio Code是一款轻量级开源的代码编辑器,自带强大的代码补全和调试功能,在Python开发领域得到了广泛的应用。本篇攻略将介绍在VS Code中如何搭建Python Django环境。 环境准备 Python环境:请自行下载并安装P…

    Django 2023年5月16日
    00
  • 在脚本中单独使用django的ORM模型详解

    想要在脚本中单独使用django的ORM模型,需要按照以下步骤进行操作: 步骤一:设置Django环境变量 在脚本的开头,需要设置环境变量,引入django包以及配置django的settings,示例如下: import os import django os.environ.setdefault(‘DJANGO_SETTINGS_MODULE’, ‘my…

    Django 2023年5月16日
    00
  • 简单的Django向HTML展示动态图片 案例——小白

    目标:通过Django向HTML传送图片展示 我的天哪,真是膈应人,网上的案例都不适合我,感觉所有的解决办法在我这里都不行。 好吧~ 是我菜,看不懂人家的代码,那句话叫啥来着?一本好经被傻和尚念歪了。自己摸索一下午,快疯了。路径是对的,但是就是不能把图片显示出来,最后看到别人博客的一句话,终于出来了~~~ 满满辛酸泪! 进入正题——————假装这是一条分割线…

    2023年4月9日
    00
  • 详解Django的CSRF认证实现

    Django的CSRF认证实现是一种保护用户免受跨站请求攻击(Cross-site request forgery,CSRF)的攻击。下面是详细的攻略,包含两个示例说明。 一、什么是CSRF攻击? CSRF攻击是利用用户在已经认证的网站上执行特定的操作,使得用户在不知情的情况下执行不良操作。例如,假设某个银行网站使用GET请求将用户的资金转移,黑客可以发邮件…

    Django 2023年5月16日
    00
  • django orm操作(1)

    MVC或者MVC框架中包括一个重要的部分,就是ORM,它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的数据库,通过简单的配置就可以轻松更换数据库,这极大的减轻了开发人员的工作量,不需要面对因数据库变更而导致的无效劳动 ORM是“对象-关系-映射”的简称。 View Code 回到顶部 单表操作 创建表 1  创建模型 创建名为book的ap…

    Django 2023年4月13日
    00
  • django+Echarts实现数据可视化

    1.实时异步加载(从mysql读取数据)   2.scatter散点图 3.雷达图(参数选择要注意) time_1 time_2 time_3 4.面积图 我上传的源码请到github下载:https://github.com/zdYng/django_web_echarts

    Django 2023年4月13日
    00
  • Python – Django – JsonResponse 对象

    用 json 模块和 HttpResponse 返回生成的 json views.py: from django.shortcuts import render, HttpResponse import json # json 测试 def json_test(request): data = {“name”: “Jack”, “age”: 18} hobb…

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