目录
- 简单的展示和管理模型
- 对admin进行定制
- 注册装饰器
- ModelAdmin的属性
简单的展示和管理模型
在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')