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"数据类型也默认提供时间选择组件,如 ...
随机推荐
- DevPress GridControl的使用
XtraGrid使用方法 XtraGrid的关键类就是:GridControl和GridView.GridControl本身不显示数据,数据都是显示在GridView/CardView/XXXXV ...
- map映射
采集于:https://blog.csdn.net/luanpeng825485697/article/details/78056312 映射map: var map = new Map(); //映 ...
- HBuilder
什么是HBuilder? HBbuilder是DCloud(数字天堂)推出的一款支持HTML5的WEB开发IDE,主体是由java编写的,它将HTML/JS代码块进行代码封装,达到简单数据形成代码的特 ...
- Gym 101606 - A/B/C/D/E/F/G/H/I/J/K/L - (Undone)
链接:https://codeforces.com/gym/101606 A - Alien Sunset 暴力枚举小时即可. #include<bits/stdc++.h> using ...
- Java 通过getbean取出的类为什么要强转为接口类
这个问题是之前一个同学问我的,这些是我在网上找到的资料,由于我自己也没有完全搞明白,先大概记录一下 首先问题是为什么在bean文件中注入的是实现类,但是通过getBean()取出的时候却必须强制转化为 ...
- python2和python3共存时,设置默认python为python3
sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 100 sudo update-alternati ...
- 在linux环境下部署禅道环境
下载禅道安装包: 1)cd /home/ 2)mkdir app 3)ls 4)cd app/ 5)pwd 6)wget +禅道地址(http://dl.cnezsoft.com/zentao/9.8 ...
- VUE项目注意点
1.vue组件中img标签的src属性绑定数据: <img :src="img" alt="图片" /> //scriptdata() { img: ...
- uCOS-II
/****************************************************/ **关于移植,ucos官网上给的有template,主要思想是实现任务切换的两个函数(任务 ...
- 【记录tomcat报错解决办法】tomcat请求组件没有找到的问题
报错原因: An incompatible version 1.1.14 of APR based Apache Tomcat Native library is installed, while T ...