阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

后台管理-Admin站点管理

369次阅读
没有评论

共计 2910 个字符,预计需要花费 8 分钟才能阅读完成。

admin 是什么?

admin 站点是可视化界面后台管理系统,方便模型数据的操作与维护。

一、配置

  • settings.py

    在 settinngs.py 文件中的 INSTALLED_APPS 中添加’django.contrib.admin’默认是已经添加好的

    INSTALLED_APPS = ['django.contrib.admin', ]

    配置中国的时区

    修改 settings.py 文件

    LANGUAGE_CODE = 'zh-Hans' TIME_ZONE = 'Asia/Shanghai'
  • 创建管理员用户

    python manage.py createsuperuser

    依次输入用户名、邮箱、密码

二、所需模型类

  • 班级表
# 班级表 class Grades(models.Model): gname = models.CharField(max_length=15) gnum = models.IntegerField() ggirlnum = models.IntegerField() gboynum = models.IntegerField() isDelete = models.BooleanField(default=False) class Meta: db_table = 'grades'
  • 学生表

    # 学生表 class Students(models.Model): sname = models.CharField(max_length=10) ssex = models.BooleanField(default=True) sage = models.IntegerField(default=20) sgrade = models.ForeignKey(Grades, on_delete=models.CASCADE) isDelete = models.BooleanField(default=False) def __str__(self): return self.sname class Meta: db_table = 'students'

三、admin 配置属性使用

  • 字段显示

    list_display

    list_display = ['pk', 'gname', 'gnum', 'ggirlnum', 'gboynum', 'isDelete']
    
  • 过滤字段

    list_filter

    list_filter = ['gname']
    
  • 搜索字段

    search_fields

    search_fields = ['gname']
    
  • 分页

    list_per_page

    list_per_page = 5
    
  • 更改添加、修改数据样式

    fields

    fields = ['ggirlnum','gboynum','gname','gnum','isDelete']
    
  • 添加、修改数据 属性分组

    fieldsets

     fieldsets = [("num",{"fields":['gnum', 'ggirlnum','gboynum']}),
            ("other",{"fields":['gname','isDelete']}),
        ]
    

    注意:fields 与 fieldsets 不能同时使用

四、操作实例

  • 修改 admin.py 文件 配置后台显示页面

    from .models import Grades,Students # 注册 admin.site.register(Grades) admin.site.register(Students)
  • 配置后台班级的页面显示

    from .models import Grades,Students class GradesAdmin(admin.ModelAdmin): # 列表页属性 # 显示字段 list_display = ['pk', 'gname', 'gnum', 'ggirlnum', 'gboynum', 'isDelete'] # 过滤字段 list_filter = ['gname'] # 搜索字段 search_fields = ['gname'] # 分页 list_per_page = 5 # 添加、修改数据的时候 属性的先后顺序 # fields = ['ggirlnum','gboynum','gname','gnum','isDelete'] # 添加、修改数据的时候 给属性分组 fieldsets = [("num",{"fields":['gnum', 'ggirlnum','gboynum']}), ("other",{"fields":['gname','isDelete']}), ] admin.site.register(Grades, GradesAdmin)
  • 关联对象

    需求:在创建一个班级时可以直接添加几个学生

    #TabularInline 横着显示添加学生布局 #StackedInline #竖着显示添加学生的布局 class StudentsInfo(admin.TabularInline): model = Students extra = 2 #2 带表添加的学生 S 数 class GradesAdmin(admin.ModelAdmin): inlines = [StudentsInfo]
  • 字段显示中文

    将模型设置属性 verbose_name 的值

    from django.db import models # Create your models here. class Grades(models.Model): gname = models.CharField(max_length=15, verbose_name='班级名称') gnum = models.IntegerField(verbose_name='班级总人数') ...

    说明:在将数据库里面的数据导出成 csv 文件,那么 csv 文件的表头的名字可以通过取每个字段的 verbose_name 来获取,数据可以通过 queryset 语句来获取。这样制作出来的 csv 表就能像数据库一样,字段名和字段值一一对应了。在后台字段也都会显示为中文

  • 布尔值显示问题(显示成男女)

    class StudentsAdmin(admin.ModelAdmin): def gender(self): if self.ssex: return "男" else: return "女" # 设置页面列的名称 sa gender.short_description = "性别" list_display = ['pk','sname','sage',gender,'scontented','sgrade','isDelete'] list_per_page = 10 # 执行动作的位置 搜索框的上下位置 actions_on_top = False actions_on_bottom = True admin.site.register(Students,StudentsAdmin)
  • 使用装饰器完成注册

    @admin.register(Grades) class StudentAdmin(admin.ModelAdmin): pass @admin.register(Students) class StudentsAdmin(admin.ModelAdmin): pass #admin.site.register(Students,StudentsAdmin) # admin.site.register(Grades, GradesAdmin)

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-05-26发表,共计2910字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19348
评论数
4
阅读量
7799163
文章搜索
热门文章
开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南

开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南

开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南 大家好,我是星哥。之前介绍了腾讯云的 Code...
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
云服务器部署服务器面板1Panel:小白轻松构建Web服务与面板加固指南

云服务器部署服务器面板1Panel:小白轻松构建Web服务与面板加固指南

云服务器部署服务器面板 1Panel:小白轻松构建 Web 服务与面板加固指南 哈喽,我是星哥,经常有人问我不...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
12.2K Star 爆火!开源免费的 FileConverter:右键一键搞定音视频 / 图片 / 文档转换,告别多工具切换

12.2K Star 爆火!开源免费的 FileConverter:右键一键搞定音视频 / 图片 / 文档转换,告别多工具切换

12.2K Star 爆火!开源免费的 FileConverter:右键一键搞定音视频 / 图片 / 文档转换...
自己手撸一个AI智能体—跟创业大佬对话

自己手撸一个AI智能体—跟创业大佬对话

自己手撸一个 AI 智能体 — 跟创业大佬对话 前言 智能体(Agent)已经成为创业者和技术人绕...
三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Android 的最优解?

三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Android 的最优解?

  三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Andr...
在Windows系统中通过VMware安装苹果macOS15

在Windows系统中通过VMware安装苹果macOS15

在 Windows 系统中通过 VMware 安装苹果 macOS15 许多开发者和爱好者希望在 Window...
【开源神器】微信公众号内容单篇、批量下载软件

【开源神器】微信公众号内容单篇、批量下载软件

【开源神器】微信公众号内容单篇、批量下载软件 大家好,我是星哥,很多人都希望能高效地保存微信公众号的文章,用于...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
零成本上线!用 Hugging Face免费服务器+Docker 快速部署HertzBeat 监控平台

零成本上线!用 Hugging Face免费服务器+Docker 快速部署HertzBeat 监控平台

零成本上线!用 Hugging Face 免费服务器 +Docker 快速部署 HertzBeat 监控平台 ...
星哥带你玩飞牛 NAS-9:全能网盘搜索工具 13 种云盘一键搞定!

星哥带你玩飞牛 NAS-9:全能网盘搜索工具 13 种云盘一键搞定!

星哥带你玩飞牛 NAS-9:全能网盘搜索工具 13 种云盘一键搞定! 前言 作为 NAS 玩家,你是否总被这些...
星哥带你玩飞牛NAS硬件 01:捡垃圾的最爱双盘,暴风二期矿渣为何成不老神话?

星哥带你玩飞牛NAS硬件 01:捡垃圾的最爱双盘,暴风二期矿渣为何成不老神话?

星哥带你玩飞牛 NAS 硬件 01:捡垃圾的最爱双盘,暴风二期矿渣为何成不老神话? 前言 在选择 NAS 用预...
星哥带你玩飞牛NAS-16:不再错过公众号更新,飞牛NAS搭建RSS

星哥带你玩飞牛NAS-16:不再错过公众号更新,飞牛NAS搭建RSS

  星哥带你玩飞牛 NAS-16:不再错过公众号更新,飞牛 NAS 搭建 RSS 对于经常关注多个微...
三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Android 的最优解?

三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Android 的最优解?

  三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Andr...