心蓝的博客 心蓝的博客
首页
  • 零基础

    • python零基础入门
  • 专项

    • 正则表达式
  • web框架

    • django框架
    • drf
技术
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档

心蓝

人生苦短,我用python
首页
  • 零基础

    • python零基础入门
  • 专项

    • 正则表达式
  • web框架

    • django框架
    • drf
技术
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
  • 零基础

  • 专项

  • web框架

    • django框架

      • web框架介绍
      • python虚拟环境
      • 创建django项目与应用
      • django中的路由系统
      • web框架设计模式
      • 模板
      • 静态文件引用
      • web应用开发模式
      • 请求和响应
      • 视图
      • ORM与模型
      • 数据库操作
      • 项目实战一
      • 表单
      • RESTful API
      • 项目实战二
      • djangoadmin
        • 安装django-admin
        • 创建管理员用户
        • 管理模型
        • 自定义设置
    • drf

  • python
  • web框架
  • django框架
心蓝
2022-12-21
目录

djangoadmin

# DjangoAdmin

# 安装django-admin

为数据进行增删改查是一个枯燥,有没有创造性的工作。django提供了一个内置的app,我们只需要做简单的配置就可以自动生成一个功能强大的管理后台。

要使用django admin非常简单:

  1. 首先你需要在INSTALL_APPS中注册django.contrib.admin,然后它的依赖,

image-20220210175809137

  1. 模板设置

image-20220210180001088

  1. 如果你自定义了MIDDLEWARE,必须包含

    • django.contrib.auth.middleware.AuthenticationMiddleware

    • ``django.contrib.messages.middleware.MessageMiddleware`

  2. 在根路由中配置admin

    path('admin/', admin.site.urls),

当你做完这些,你就可以通过'/admin'(默认)访问admin站点。

image-20220210191432761

默认情况下,创建的项目会自动安装admin,不需要做任何操作即可使用django-admin。

# 创建管理员用户

要使用django-admin,你还需要创建一个用户来登录站点。通过python manage.py createsuperuser命令。

image-20220210191236238

# 管理模型

接下来,我们就需要为我们要管理的模型定义ModelAdmin。

app里有一个admin.py,在这个文件中我们注册我们想要管理的模型,代码如下:

from django.contrib import admin

# Register your models here.
from .models import Student, StudentDetail

admin.site.register(Student)
admin.site.register(StudentDetail)
1
2
3
4
5
6
7

然后访问admin站点,通过用刚才创建的超级管理员账号登录,你会看到如下页面

image-20211116170638936

接下来我们就可以对这些模型的数据进行增删改查。

# 自定义设置

django admin 的强大之处在于,可以通过简单的设置,可以定义管理页面的显示方式。

如果我们要自定义设置,我们需要在admin.py中定义admin.ModeAdmin的子类:

class StudentAdmin(admin.ModelAdmin):
    list_display = ['id', 'name', 'sex', 'qq', 'phone']
    list_display_links = ['name']
    list_filter = ['sex']
    search_fields = ['name', 'qq', 'name', 'c_time']
    list_per_page = 1

    # fields = ['sex', 'name']
    fieldsets = [
        (None, {'fields': ['name', 'sex']}),
        ('详细信息', {'fields': ['qq', 'phone', 'grade']}),
        ('设置', {'fields': ['is_delete']})

    ]


admin.site.register(Student, StudentAdmin)
admin.site.register(StudentDetail)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

列表页属性:

  • list_display:显示字段,可以点击列头进行排序

  • list_filter:过滤字段,过滤框会出现在右侧

  • search_fields:搜索字段,搜索框会出现在上侧

  • list_per_page:分页,分页框会出现在下侧

  • list_display_links: 定义点击哪些字段可以调到修改增加页面

添加、修改页属性:

  • fields:属性的先后顺序

  • fieldsets:属性分组

注意:上面两个属性,二者选一。

更多详见官方文档:https://docs.djangoproject.com/zh-hans/3.2/ref/contrib/admin/

本文完,感谢你的耐心阅读,如有需要可加我微信,备注「博客」并说明原因,我们一起进步,下次见。

#django
上次更新: 2022/12/26, 16:59:39
项目实战二
简介

← 项目实战二 简介→

最近更新
01
requests让接口测试如此简单 原创
03-31
02
最简明的python正则教程
03-30
03
pycharm激活码
12-30
更多文章>
Theme by Vdoing | Copyright © 2019-2025 心蓝
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式