Django - Admin管理后台 - 自定制Admin

本文详细介绍了如何在Django中对admin后台进行定制,包括使用ModelAdmin类注册模型、设置属性如actions、date_hierarchy、fieldsets等,以及如何调整字段显示顺序和分组,还涉及到了多对多字段的水平和垂直扩展。通过对ModelAdmin的深入理解和应用,可以更好地管理和展示项目中的数据。
摘要由CSDN通过智能技术生成

简单的展示和管理模型

在admin.py模块中使用admin.site.register将模型注册

from django.contrib import admin
from myproject.myapp.models import Author

admin.site.register(Author)

对admin进行定制

使用Django提供的ModelAdmin类

from django.contrib import admin
from myproject.myapp.models import Author

# 创建一个ModelAdmin的子类
class AuthorAdmin(admin.ModelAdmin):
	pass

# 注册的时候, 将原模型和ModelAdmin关联起来
admin.site.register(Author, AuthorAdmin)

注册装饰器

用装饰器的方式连接模型和ModelAdmin.

from django.contrib import admin
from myproject.myapp.models import Author

@admin.register(Author)
class AuthorAdmin(admin.ModelAdmin):
	pass

ModelAdmin的属性

ModelAdmin.actions

一个列表, 包含自定义的actions

ModelAdmin.actions_on_top

是否在列表上放显示actions的下拉框, 默认为True

ModelAdmin.actions_selection_counter

是否在actions下拉框右侧显示选中的对象的数量, 默认为True
在这里插入图片描述

ModelAdmin.date_hierarchy

根据指定的日期相关的字段, 为页面创建一个日期导航栏, 可通过日期过滤对象

date_hierarchy = 'pub_date'

ModelAdmin.empty_value_display

指定空白显示的内容.
如果有些字段没有值, 默认情况下会显示破折号 ‘-’.

from django.contrib import admin

class AuthorAdmin(admin.ModelAdmin):
	empty_value_display = '-empty-'

ModelAdmin.exclude

不显示指定的某些字段

class AuthorAdmin(admin.ModelAdmin):
    # 值是个元组
    exclude = ('birth_date',)

ModelAdmin.fields

按你希望的顺序,显示指定的字段
可以通过组合元组的方式,让某些字段在同一行内显示

class FlatPageAdmin(admin.ModelAdmin):
    fields = (('url', 'title'), 'content')

ModelAdmin.fieldsets

根据字段对页面进行分组显示或布局

from django.contrib import admin

class FlatPageAdmin(admin.ModelAdmin):
    fieldsets = (
        (None, {
            'fields': ('url', 'title', 'content', 'sites')
        }),
        ('Advanced options', {
            'classes': ('collapse',),
            'fields': ('registration_required', 'template_name'),
        }),
    )

在filed_options字典内, 可以使用下面这些关键字

fields:一个必填的元组,包含要在fieldset中显示的字段
classes : 一个包含额外的CSS类的元组
参数
* collaspe : 将fieldsets折叠起来.
* wide : 具备更宽的水平空间
description:一个可选的额外的说明文本,放置在每个fieldset的顶部

ModelAdmin.filter_horizontal

水平扩展多对多字段.

ModelAdmin.filter_vertical

垂直扩展多对多字段.

ModelAdmin.inlines

参考InlineModelAdmin对象,就像ModelAdmin.get_formsets_with_inlines()一样。

ModelAdmin.list_display

指定显示在修改页面上的字段。例如:

list_display = ('first_name', 'last_name')
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值