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

  • 相关阅读:
    LeetCode每日一题:2594. 修车的最少时间(2023.9.7 C++)
    使用applescript自动化trilium的数学公式环境
    【iOS】—— Tagged Pointer对象
    华为机试真题 Python 实现【字符串重新排列】【2022.11 Q4新题】
    【工具】咸鱼之王辅助小助手来了!
    供热管网优化设计的数学模型
    切方块游戏 HTML5+jQuery【附源码】
    Python爬虫采集框架——Scrapy初学入门
    Cookie &Session & JSP
    【机器学习300问】30、准确率的局限性在哪里?
  • 原文地址:https://blog.csdn.net/eclipsercp/article/details/139818818