首页 > 其他分享 >Django中admin的一些知识点

Django中admin的一些知识点

时间:2023-01-12 20:13:16浏览次数:65  
标签:知识点 admin fields 模型 Django 字段 列表 页面

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

标签:知识点,admin,fields,模型,Django,字段,列表,页面
From: https://www.cnblogs.com/shaoyishi/p/17047806.html

相关文章

  • python django考勤签到系统
    pythondjango考勤签到系统django考勤系统django学校考勤系统django班级考勤系统前端:htmlcss等后端:pythondjango数据库:MYSQL涉及功能:登陆、注册、退出、修改用户......
  • Django保存的时间与系统时间不一致
    在使用Django项目打印时间时发现与系统时间不一样,原因是django默认使用的是格林尼治的时间,与北京时间差八个小时解决办法:在Django的配置文件settings.py中,有两个配置参数是......
  • Python程序员需了解的:Django框架之环境安装
    虚拟环境安装:开发中问题:如何在同一台主机中,要开发多个不同的项目,而且需要用到同一个包的不同版本?尝试分析:在开发过程中,使用python的包时可以联网安装,使用sudopipinstall......
  • 解决django-ckeditor本地可以显示,但上传至公网无法显示。
    背景&问题描述自己刚学习django搭建了一个自己的博客,导入ckeditor富文本编辑器,一开始是自己的127:0:0:1和公网都可以加载出来,之后又引入了一些模块改了一些bug...总之就......
  • 1012.Django中间件以及上下文处理器
    一、中间件中间件的引入:Django中间件(Middleware)是一个轻量级、底层的“插入”系统,可以介入Django的请求和响应处理过程,修改Django的输入或输出。  django中的中间......
  • ubuntu下配置django+apache+mysql+mod_python+Python
    网上有N种安装方法,我都试过,没有一个最后能成功,浪费了一下午的时间,终于搞定,1.installPython最新的Ubuntu操作系统是含有Python的,可以通过Python--version查看的:lab@lab:~......
  • django1.6 apache 项目部署.
    前提:apache服务器已经安装好 ps:安装Apache的WSGI模块,sudoapt-getinstalllibapache2-mod-wsgi .可以使用a2enmodwsgi来验证是不是已经安装成功。 1,修改wsgi.py......
  • Python django旅游网站
    Pythondjango旅游网站django旅游推荐、风景推荐、风景展示、旅游景点推荐技术:Pythondjango数据库:MySQL前端:htmlcssjs等涉及到的功能:登录、注册、登出、查看个人......
  • 玩转Vben Admin第3改:登录页面配置
    登录页面有很多内容需要调整,不同网站需要重新编译前端就非常麻烦。下面改成通过后端代码来控制登录页面的效果。第一步:首先添加API接口将下面的代码保存到 /src/api/sy......
  • 【Java】Vue-Element-Admin 嵌入Druid监控面板
     我看到若依做了Druid面板的嵌入,我自己的项目干脆也做一个 一、后台服务SpringBoot:Druid配置项:spring:datasource:url:jdbc:mysql://127.0.0.1:3308/tt?s......