Django中admin的一些知识点
Django中的Admin站点管理:
- 内容发布的部分由网站的管理员负责,包括查看、添加、修改、删除数据;
- Django项目中默认启用Admin管理站点:列表页选项, 编辑页选项, 重写模板。
#准备工作 启用mysql数据库+定义AreaInfo模型类+创建管理员+注册模型类 再 重写模型__str__ # 控制站点管理页的展示 - 类ModelAdmin可以控制模型在Admin界面中的展示方式,主要包括在列表页的展示方式、添加修改页的展示方式 - 注册模型类前定义管理类AreaAdmin class AreaAmin(admin.ModelAdmin): pass - 管理类有两种使用方式 1.注册参数 admin.site.register(AreaInfo, AreaAdmin) 2.装饰器 @admin.register(AreaInfo) class AreaAmin(admin.ModelAdmin): pass
列表页选项
- 页大小
#设置每页展示的条数,默认每页显示100条 list_per_page = 100
- 操作选项Action的位置:默认在管理页面的顶部有一个,管理页面底部没有
# 在头部增加一个 actions_on_top = True # 在底部增加一个 actions_on_bottom = False
- 列表中的列: 指定在模型列表中显示哪些字段作为列
# 指定展示的字段 list_display = [字段1, 字段2, ...] # 定义模型方法作为列 def title(self): return self.name # 指定方法作为列的排序依据 title.admin_order_field = 'name'
- 模型方法为列:模型方法和模型字段都指定为列显示在管理界面上
- 列标题:默认为属性或方法的名称,可以通过属性设置为其他名称。设置方式
1.short_description 属性设置 - 方法名.short_description = '列标题 2.verbose_name 属性设置
- 右侧栏过滤器:只能接收字段,会将对应字段的值列出来,用于快速过滤,一般用于有重复值的字段
list_filter = ['字段1', '字段2', ...]
- 搜索框:用于对指定字段的值进行搜索,支持模糊查询
search_fields = ['字段1', '字段2', ...]
编辑页选项
- 字段顺序:根据列表顺序指定编辑界面字段顺序
fields = ['字段1', '字段2', ...]
- 字段分组:字段分组fieldsets与字段顺序fields二选一使用
fieldsets = ( ('组1标题', {'fields': ('字段1', '字段2')}), ('组2标题', {'fields': ['字段3', '字段4']}), )
- 关联对象
在一对多的关系中,可以在一端的编辑页面中编辑多端的对象 - 嵌入多端对象的方式包括表格、块两种 类型InlineModelAdmin:表示在模型的编辑页面嵌入关联模型的编辑 - 子类StackedInline:以块的形式嵌入 - 子类TabularInline:以表格的形式嵌入 在admin.py文件中,创建AreaStackedInline类,继承自admin.StackedInline
重写模板
- 当我们需要修改站点管理页面的样式时,可以重写站点的模板
在templates 目录下创建 admin目录
再在admin文件下创建base_site.html
转载于:https://blog.csdn.net/zhuyuntao6561/article/details/79573854