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

posted on 2023-01-12 20:02  一先生94  阅读(146)  评论(0编辑  收藏  举报

导航