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"数据类型也默认提供时间选择组件,如 ...
随机推荐
- Java自学笔记
1.标识符:字母,数字,下划线,美元符组成,不可以已数字开头,并且严格区分大小写 2.变量 有三个元素描述变量,变量类型,变量名,变量值 如何命名变量:首字母为 字母:下划线:“$“符号,其余部分为 ...
- Lombok 介绍
Lombok使用 介绍 在项目中使用Lombok可以减少很多重复代码的书写.比如说getter/setter/toString等方法的编写. IDEA中的安装 打开IDEA的Setting –> ...
- linux svn权限
svnserve -d -r /opt/svn //启动 创建仓库 svnadmin create /u02/svn/davesvn ...
- python基础的学习
今日内容 1.常见操作系 1.win win7 win10 window serrer 2.linux centons 图像界面差 upuntu 个人开发(图形化较好) redhat 企业 3.mac ...
- 软件工程第二次作业-VSTS单元测试
一.选择开发工具 开发工具选择 Visual studio 2017 社区版,开发语言为C 由于之前已经安装完毕,所以不上传安装过程,主界面如下: 二.练习自动单元测试 使用的测试工具是VSTS,具体 ...
- 《HTTP - 跨域》
本文参考 HTTP访问控制(CORS) 一:什么是跨域? - 所谓跨域, 是浏览器为了保护网站安全而建立的一种保护策略,既浏览器的同源策略. - 意味着使用这些API的Web应用程序只能从加载应用程序 ...
- centos7 + php7
安装php7 https://www.zntec.cn/archives/centos7-lamp.html composer安装tp curl -sS https://getcomposer.org ...
- JSTL将number类型转化为String类型
<c:set var="lm1"> <c:out value="${lm}" /> </c:set>
- 基于binlog恢复工具mysqlbinlog_flashback
基于binlog恢复工具mysqlbinlog_flashback简介 mysqlbinlog_back.py 是在线读取row格式的mysqld的binlog,然后生成反向的sql语句的工具.一般用 ...
- 2019-04-15 Python中的面向对象学习总结
一.面向对象总结: (1)三要素:封装,继承,多态 详细介绍链接:https://www.jianshu.com/p/68a ...