第8天:Django Admin高级配置

第8天:Django Admin高级配置

目标

定制Django Admin界面,提高数据管理效率。

任务概览
  1. 注册模型到Admin界面。
  2. 定制Admin选项,如列表显示、搜索字段、过滤器等。
详细步骤
1. 注册模型到Admin界面

在Django Admin中注册模型,使其在界面中显示。

python 复制代码
# myproject/myapp/admin.py

from django.contrib import admin
from .models import MyModel

@admin.register(MyModel)
class MyModelAdmin(admin.ModelAdmin):
    pass
2. 定制Admin列表显示

定制Admin界面中的列表显示,包括字段、搜索、过滤器等。

  • 字段显示 :设置list_display来定义列表页面显示哪些字段。
python 复制代码
list_display = ('field1', 'field2', 'method_name')
  • 搜索 :设置search_fields来添加搜索框,并定义可搜索的字段。
python 复制代码
search_fields = ['field1', 'field2']
  • 过滤器 :使用list_filter来添加侧边过滤器。
python 复制代码
list_filter = ('field1', 'field2')
3. 定制Admin表单

定制Admin表单页面,包括哪些字段显示以及它们的布局。

  • 表单字段 :设置fields来定义表单页面的字段顺序。
python 复制代码
fields = ('field1', 'field2')
  • 字段集 :使用fieldsets来将字段分组显示。
python 复制代码
fieldsets = (
    ('Group 1', {
        'fields': ('field1', 'field2'),
    }),
    ('Group 2', {
        'fields': ('field3',),
    }),
)
  • 表单布局 :使用form属性来自定义表单类。
python 复制代码
class MyModelAdmin(admin.ModelAdmin):
    form = MyModelForm
4. 定制Admin模型行为

定制Admin模型的行为,如保存、删除等。

  • 保存 :重写save_model方法来自定义保存行为。
python 复制代码
def save_model(self, request, obj, form, change):
    obj.save()
  • 删除 :重写delete_model方法来自定义删除行为。
python 复制代码
def delete_model(self, request, obj):
    obj.delete()
5. 定制Admin界面的样式和脚本

添加自定义的CSS和JavaScript来改变Admin界面的样式或添加交互。

python 复制代码
class MyModelAdmin(admin.ModelAdmin):
    class Media:
        css = {
            'all': ('css/mymodel_admin.css',)
        }
        js = ('js/mymodel_admin.js',)
学习要点
  • 理解如何将模型注册到Django Admin。
  • 学会如何定制Admin列表页面和表单页面。
  • 掌握如何添加自定义的CSS和JavaScript到Admin界面。
每日回顾
  • 检查Admin界面是否按预期显示模型。
  • 测试定制的列表显示、搜索、过滤器是否正常工作。

通过今天的学习,你应该能够定制Django Admin界面,提高数据管理的效率。明天,我们将学习如何在Django中管理静态文件和媒体文件,这对于构建现代Web应用是必不可少的。

相关推荐
CappuccinoRose6 分钟前
排序算法和查找算法 - 软考备战(十五)
数据结构·python·算法·排序算法·查找算法
lifallen13 分钟前
Flink Agents:从 DataStream 到 Agent 算子的接入与装配
java·大数据·人工智能·python·语言模型·flink
做cv的小昊26 分钟前
【conda】打包已有conda环境并在其他服务器上搭建
运维·服务器·python·conda·运维开发·pip·开发
Hommy8829 分钟前
【开源剪映小助手-客户端】目录扫描功能
python·开源·aigc·剪映小助手
Pocker_Spades_A30 分钟前
Python快速入门专业版(五十六)——爬虫会话管理:Cookie与Session原理及实战(保持登录状态)
开发语言·爬虫·python
MwEUwQ3Gx30 分钟前
深入理解 Java Deque 的设计哲学
java·开发语言·python
MoRanzhi120333 分钟前
scikit-learn 决策树分类详解:从原理、可视化到剪枝实战掌握 DecisionTreeClassifier
python·决策树·机器学习·数学建模·分类·scikit-learn·剪枝
财经资讯数据_灵砚智能38 分钟前
基于全球经济类多源新闻的NLP情感分析与数据可视化(日间)2026年4月5日
大数据·人工智能·python·信息可视化·自然语言处理·ai编程
luom010242 分钟前
诊疗室技术文章大纲
python·beautifulsoup·tornado·dash
飞翔的SA1 小时前
MLX‑VLM :Mac本地跑通多模态大模型的开源项目!让图片、音频、视频理解一键上手
人工智能·python·macos·音视频