django admin使用-后台数据库管理界面
admin是django提供的基于web的管理数据库的工具,它是django.contrib 的一部分,可以在项目的settings.py中的INSTALLED_APPS看到。
一、admin管理工具的使用方法如下:
1.在models.py中创建模型
class Students(models.Model):
sname=models.CharField(max_length=20)
age=models.IntegerField()
gender=models.BooleanField()
cls=models.ForeignKey('Classes',on_delete=models.CASCADE)
def __str__(self):
return '%s,%s,%s,%s'%(self.sname,self.age,self.gender,self.cls)
class Meta:
db_table='students' class Classes(models.Model):
cname=models.CharField(max_length=50)
headmaster=models.CharField(max_length=20)
def __str__(self):
return '%s,%s'%(self.cname,self.headmaster)
class Meta:
db_table='classes'
2.在模型所在app的admin.py中注册模型
from django.contrib import admin
from app01.models import Students,Classes
admin.site.register(Students)
admin.site.register(Classes)
3.将模型映射到数据库中
即执行python manage.py makemigrations和migrate命令
4.创建超级用户
python manage.py createsuperuser,会提示输入用户名和密码等操作,按提示输入即可

5.运行项目,通过http://127.0.0.1:8000/admin/访问,并通过上一步创建的用户名和密码进行登录
要使用admin管理工具,需要在项目的urls.py文件的urlpatterns中保留path('admin/', admin.site.urls)部分,登录后的管理界面如下:

在这个管理界面也可以对模型进行增、删、改操作。点击Students进入学生模型界面,显示如下,默认最后添加的显示在最上面。

二、自定义admin显示样式
以以上Student模型为例。
1.注册模型时给模型取一个别名
admin.site.register(Students,StudentsAdmin),注意此时这个注册操作应该放在下一步定义别名模型的后面
2.定义别名模型
class StudentsAdmin(admin.ModelAdmin):
list_display = ('id','sname','age','gender','cls') #默认只显示显示一列,list_display指定显示列,存在多对多关系的列不能指定显示和可编辑
list_editable = ('sname','age','gender','cls') #显示界面可编辑的列
list_per_page = 5 #每页显示行数
ordering = ('age','-sname') #排序,默认升序,前面加-则降序
search_fields = ('sname','age') #显示搜索框,在搜索框内可通过指定字段进行搜索
list_filter = ('age','cls') #过滤选项
fieldsets = [(None, {'fields': ['sname','cls']}),
('other information', {'fields': ['gender', 'age'], 'classes': ['collapse']})] #添加时非必要信息折叠不显示
#filter_horizontal = ('cls',) #仅限多对多列使用,对存在多对多的列可搜索
#filter_vertical = ('cls',) #同上
3.配置文件和模型定义
admin管理界面默认为英文显示,可在settings.py中修改语言LANGUAGE_CODE = 'zh-hans',则在管理界面会显示中文。
管理界面显示的表名称为模型的名称,如果要修改在admin中显示的名称,可在模型定义时的class Meta下增加一行verbose_name_plural = '自定义名称'。
管理界面显示的列名称为模型定义时的属性名称,例如学生的名字sname在管理界面同样显示为sname,如果在定义时加上verbose_name即别名,sname=models.CharField(max_length=20,verbose_name='学生姓名'),则在管理界面该字段会显示为学生姓名,如果定义时没有其他参数也可以直接跟上别名,例如age=models.IntegerField('年龄')。
按照上述操作修改之后的students显示界面如下。

fieldsets在添加学生时起作用,如下,会将指定的非必须信息折叠起来,当然这些信息要么指定了默认值,要么可以为空,否则不为空还是必须要求给定值。

假设存在一个班级与老师的多对多关系,filter_horizontal = ('cls',)效果如下,filter_vertical表示选中的框在下面垂直方向上。

django admin使用-后台数据库管理界面的更多相关文章
- 在使用django admin的后台搜索时报错
在使用django admin的后台搜索时报错 百度说在search_fields中定义了非字符串字段,最后发现author引用了外键 解决办法: 有外健时应写成: 本表外键字段__外键所在表所需要查 ...
- 使用django的admin的后台管理界面
django的admin后台管理界面是方便我们对数据库操作的 是一个在浏览器显示的 图形化界面数据库操作 我们先在django中的admin中把我们需要在图形化界面中进行操作的表导入进去: 先把m ...
- django admin管理后台中文添加问题
django版本号 1.7.8 #create database mydb character set utf8;#django-admin.py startproject mysite#设置sett ...
- 01: 重写Django admin
目录: 1.1 重写Django admin项目各文件作用# 1.2 重写Django admin用户认证 1.3 将要显示的表注册到我们自己的kind_admin.py中 1.4 项目首页:显示注册 ...
- Django后台管理界面
之前的几篇记录了模板视图.模型等页面展示的相关内容,这篇主要写一下后台admin管理界面的内容. 激活管理界面 Django管理站点完全是可选择的,之前我们是把这些功能给屏蔽掉了.记得上篇中Djang ...
- 【Python】解决Django Admin管理界面样式表(CSS Style)丢失问题
配置Django Admin,关于如何启用请参考Django官方文档<Activate the admin site>.但是我在配置过程中登录http://example.com/admi ...
- Django之model admin自定义后台管理
Admin管理界面是django的杀手级应用.它读取你模式中的元数据,然后提供给你一个强大而且可以使用的界面,网站管理者可以用它立即向网站中添加内容. 比如,数据表如下: from django.db ...
- Django自带后台admin的使用配置
Django自带后台使用配置参考官网地址:https://docs.djangoproject.com/en/1.11/ref/contrib/admin/ ,本文章值是介绍简单配置,如果需要详细内容 ...
- python工业互联网应用实战5—Django Admin 编辑界面和操作
1.1. 编辑界面 默认任务的编辑界面,对于model属性包含"choices"会自动显示下来列表供选择,"datetime"数据类型也默认提供时间选择组件,如 ...
随机推荐
- 汇编入门——使用DOSBox写一个HelloWorld以及相关软件安装
0.0.0) 在D盘建立一个ASM文件夹 0.0.1) 放入所需要的文件 1所标示的红色框为必须要存在的文件,要处理汇编文件.百度网盘中下载. 2自己编写的汇编(asm)文件. 3编译汇编自己生成的文 ...
- 安装配置Greenplum
一.规划 1.服务器: 192.168.0.191 gpdb01 # master 192.168.0.192 gpdb02 # primary segment . ...
- Python的基本语法2
一.运算符 # 算术运算符, +, -, *, /, //, %, **, 注意//为整除 # 赋值运算符, =, +=, -=, *=, /=, //= ,%=, **= # 比较运算符, ==, ...
- python转换图片格式
在图片所在的路径下,打开命令窗口 bmeps -c picturename.png picturename.eps
- pymysql连接数据库报错:'NoneType' object has no attribute 'encoding'
直接写 utf8 即可.
- mint-ui笔记
1.安装: npm install mint-ui --save npm install babel-plugin-component --save-dev //(只引入部分组件时需要安装) 2.导入 ...
- HDU 2089 不要62【解题报告】
题目描述: 杭州人称那些傻乎乎粘嗒嗒的人为62(音:laoer).杭州交通管理局经常会扩充一些的士车牌照,新近出来一个好消息,以后上牌照,不再含有不吉利的数字了,这样一来,就可以消除个别的士司机和乘客 ...
- 魅族资深DBA:利用MHA构建MySQL高可用平台
龙启东 魅族资深DBA 负责MySQL.Redis.MongoDB以及自动化平台建设 .擅长MySQL高可用方案.SQL性能优化.故障诊断等. 本次分享主要包括以下几方面: 如何利用MHA 改造MHA ...
- git reset与git revert的区别
http://alpha-blog.wanglianghome.org/2010/07/30/git-partial-rollback/ reset(版本撤回) 格式 git reset [-q] [ ...
- pwn学习日记Day3 基础知识积累
知识杂项 msfVENOM:Msfvenom是msf框架配套的攻击载荷生成器. payload:有效载荷. payload:目标系统上渗透成功后执行的代码. Metasploit:一款开源的安全漏洞检 ...