Django Admin 系统详解与实战

Django Admin 系统详解与实战

Django 作为一个强大的 Python Web 框架,内置了功能完善的后台管理系统 ------ django.contrib.admin。通过简单配置,就能拥有一个可视化的数据管理界面,大幅提升开发效率。本文将详细介绍 Django Admin 的原理、常用配置和实战技巧。

一、Django Admin 简介

django.contrib.admin 是 Django 官方提供的后台管理模块。它允许开发者通过网页界面对数据库中的模型数据进行增删改查,无需额外开发后台页面。只需几步配置,就能拥有一个强大的后台管理系统。

二、启用 Django Admin

  1. 确保安装 Admin 应用

在项目的 settings.py 文件中,确认 INSTALLED_APPS 包含如下内容:

python 复制代码
INSTALLED_APPS = [
    # ...
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    # 你的应用
]
  1. 配置 URL 路由

在项目的 urls.py 文件中添加 Admin 路由:

python 复制代码
from django.contrib import admin
from django.urls import path

urlpatterns = [
    path('admin/', admin.site.urls),
]
  1. 创建超级用户

在终端执行以下命令,创建后台登录账号:

pwsh 复制代码
python manage.py createsuperuser
  1. 启动开发服务器并访问后台
pwsh 复制代码
python manage.py runserver

在浏览器访问 http://127.0.0.1:8000/admin/,使用超级用户账号登录,即可进入后台管理界面。

三、admin.py 的基本用法

每个 Django 应用都可以通过 admin.py 文件注册和定制模型在后台的展示方式。

1. 注册模型

假设应用名为 myapp,模型为 MyModel,在 myapp/admin.py 文件中:

python 复制代码
from django.contrib import admin
from .models import MyModel

admin.site.register(MyModel)

这样,MyModel 就会自动出现在后台管理界面,可以进行增删改查操作。

2. 自定义后台界面

通过继承 admin.ModelAdmin,可以定制后台的展示和操作方式:

python 复制代码
from django.contrib import admin
from .models import MyModel

class MyModelAdmin(admin.ModelAdmin):
    list_display = ('field1', 'field2')  # 列表页显示字段
    search_fields = ('field1',)          # 支持搜索的字段
    list_filter = ('field2',)            # 侧边栏过滤器

admin.site.register(MyModel, MyModelAdmin)

四、常用 ModelAdmin 配置项

  • list_display:指定列表页显示哪些字段。
  • search_fields:添加搜索框,支持指定字段搜索。
  • list_filter:添加侧边栏过滤器。
  • readonly_fields:设置只读字段。
  • fieldsets:分组显示字段。
  • actions:自定义批量操作。

示例

python 复制代码
class BookAdmin(admin.ModelAdmin):
    list_display = ('title', 'author', 'publish_date')
    search_fields = ('title', 'author__name')
    list_filter = ('publish_date',)
    readonly_fields = ('id',)
    fieldsets = (
        (None, {'fields': ('title', 'author')}),
        ('Advanced options', {'fields': ('publish_date',), 'classes': ('collapse',)}),
    )

五、进阶技巧

  • 内联编辑:在一个模型的编辑页面内嵌其他相关模型。
  • 权限控制:自定义后台用户的权限,限制可见和可操作内容。
  • 定制表单:通过自定义表单类,实现更复杂的数据校验和展示。

六、总结

Django Admin 是开发者不可或缺的利器。通过简单配置和扩展,可以快速搭建功能强大的后台管理系统。无论是快速原型开发,还是正式项目上线,Django Admin 都能为节省大量时间和精力。


欢迎留言交流更多 Django Admin 的实战经验!

相关推荐
龙腾AI白云20 小时前
多模大模型应用实战:智能问答系统开发
python·机器学习·数据分析·django·tornado
程序媛徐师姐1 天前
Python基于OpenCV的马赛克画的设计与实现【附源码、文档说明】
python·opencv·django·马赛克绘画·python马赛克绘画系统·马赛克画·python马赛克画
斯班奇的好朋友阿法法1 天前
Django 项目打包部署完整指南(适配你的项目,零报错)
python·django·sqlite
斯班奇的好朋友阿法法1 天前
Django 3.2 项目:从 Hello World 开始(完整功能版)
python·django
源码之屋2 天前
计算机毕业设计:Python天气数据采集与可视化分析平台 Django框架 线性回归 数据分析 大数据 机器学习 大模型 气象数据(建议收藏)✅
人工智能·python·深度学习·算法·django·线性回归·课程设计
架构师老Y2 天前
003、Python Web框架深度对比:Django vs Flask vs FastAPI
前端·python·django
暴力袋鼠哥3 天前
基于 Django 与 Vue 的汽车数据分析系统设计与实现
vue.js·django·汽车
360智汇云3 天前
PostgreSQL 全文检索深度指南:内置 FTS、zhparser 与 pg_search 全解
postgresql·django·全文检索
leo_messi944 天前
2026版商城项目(三)-- ES+认证服务
后端·python·django
毕胜客源码4 天前
改进yolov8的香蕉成熟度检测系统,改进前后的模型指标对比,有技术文档,支持图像、视频和摄像实时检测
人工智能·python·深度学习·yolo·django