博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
django admin使用-后台数据库管理界面
阅读量:7157 次
发布时间:2019-06-29

本文共 2477 字,大约阅读时间需要 8 分钟。

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 adminfrom app01.models import Students,Classesadmin.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)部分,登录后的管理界面如下:

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

 

 二、自定义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',则在管理界面会显示中文。

管理界面显示的列名称为模型定义时的属性名称,例如学生的名字sname在管理界面同样显示为sname,如果在定义时加上verbose_name即别名,sname=models.CharField(max_length=20,verbose_name='学生姓名'),则在管理界面该字段会显示为学生姓名,如果定义时没有其他参数也可以直接跟上别名,例如age=models.IntegerField('年龄')。

按照上述操作修改之后的students显示界面如下。

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

 

 

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

 

转载于:https://www.cnblogs.com/Forever77/p/10541775.html

你可能感兴趣的文章
scrollTop和scrollLeft
查看>>
which,whereis, locate, find
查看>>
Linux命令——ps、pstree
查看>>
metamask源码学习-contentscript.js
查看>>
小论php中的设计模式,工厂模式、单例模式、观察者模式、策略模式、命令链模式...
查看>>
关于UITableView 不能回调 tableView: cellForRowAtIndexPath的问题
查看>>
ubuntu下docker 安装 & 使用 记录
查看>>
iOS---------- @synchronized(self)的用法
查看>>
P1379 八数码难题
查看>>
Mybatis 代码生成器(集成通用Mapper)
查看>>
ArcGIS API for JavaScript开发环境配置
查看>>
C#--构造函数的理解
查看>>
LeetCode-Maximum Product of Word Lengths
查看>>
cmake在实际复杂项目中的使用
查看>>
Linux内核分析作业7:Linux内核如何装载和启动一个可执行程序
查看>>
swift水波效果
查看>>
SecureCRT:保存输出日志的方法
查看>>
[转]环形缓冲区
查看>>
Swift Review总结一:从 Swift Style 开始
查看>>
java代码----大二上机考试
查看>>