• 第8天:Django Admin高级配置


    第8天:Django Admin高级配置

    目标

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

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

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

    # 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来定义列表页面显示哪些字段。
    list_display = ('field1', 'field2', 'method_name')
    
    • 搜索:设置search_fields来添加搜索框,并定义可搜索的字段。
    search_fields = ['field1', 'field2']
    
    • 过滤器:使用list_filter来添加侧边过滤器。
    list_filter = ('field1', 'field2')
    
    3. 定制Admin表单

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

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

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

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

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

    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应用是必不可少的。

  • 相关阅读:
    若依ruoyi系统报错:mybatis-plus报错,获取用户信息异常解决方案(借助ruoyi作为后台管理系统出现的bug)
    初步探索 superset新增导出excel功能
    微服务架构漫谈,全面汇总微服务架构实战
    SpringBoot中使用ThreadPoolExecutor和ThreadPoolTaskExecutor线程池的方法和区别
    【模电实验】【验证性实验——单管共发射极放大电路实验】
    Linux vi和vim编辑器、快捷键的使用
    彻底理解线程
    【TypeScript】类的基本使用
    redis基线检查
    【ubuntu 常用命令】如何在 ubuntu bash 命令行中查看显存、硬盘内存,以及文件大小
  • 原文地址:https://blog.csdn.net/eclipsercp/article/details/139818818