Django:管理站点
1、自定义管理页面

自定义管理界面需要创建一个类,继承admin.ModelAdmin
booktest/admin.py
class BookInfoAdmin(admin.ModelAdmin): # Register your models here.
# 参数1 注册的类 为哪个类注册后台管理页面
# 参数2 管理页面的显示的方式
admin.site.register(BookInfo, BookInfoAdmin)
admin.site.register(HeroInfo)
list_display:指示BookInfo的管理页面会显示id、btitle、bpub_date三个字段:

# list_display:显示的字段
class BookInfoAdmin(admin.ModelAdmin):
# 显示的字段
list_display = ['id', 'btitle', 'bpub_date']
list_filter:让被过滤字段显示在右侧

class BookInfoAdmin(admin.ModelAdmin):
# 显示的字段
list_display = ['id', 'btitle', 'bpub_date']
list_filter = ['btitle']
search_fileds:搜索字段,搜索框会出现在上侧

class BookInfoAdmin(admin.ModelAdmin):
# 显示的字段
list_display = ['id', 'btitle', 'bpub_date']
list_filter = ['btitle']
search_fields = ['btitle']
list_per_page:分页。分页框会出现在下侧

class BookInfoAdmin(admin.ModelAdmin):
# 显示的字段
list_display = ['id', 'btitle', 'bpub_date']
list_filter = ['btitle']
search_fields = ['btitle']
list_per_page = 3
2、添加页面
fields:属性的先后顺序;点击“增加Book Info”按钮页面,在添加页面会有fields所指示的先后顺序

fields = ['bpub_date', 'btitle']
fieldsets:属性分组;点击“增加Book Info”按钮页面,在添加页面会有fieldssets中所指示的分组

fieldsets = [
("basic",{'fields':['btitle']}),
("more",{'fields':['bpub_date']})
]
注意:fields和fieldsets两者只能写一个
3、关联对象
考虑到BookInfo跟HeroInfo是一对多的关系。希望在增加BookInfo记录的同时,一起增加几个HeroInfo的记录。
此时,需要在注册的时候使用另外的属性来添加这个关系
定义一个类,继承admin.StackedInline或admin.TabularInline。表示内部增加其他记录
booktest/admin.py
class HeroInfoInline(admin.StackedInline):
model = HeroInfo # 对应哪个模型
extra = 3 # 一次增加多少条记录 class BookInfoAdmin(admin.ModelAdmin):
# 显示的字段
list_display = ['id', 'btitle', 'bpub_date']
list_filter = ['btitle']
search_fields = ['btitle']
list_per_page = 3
#fields = ['bpub_date', 'btitle']
fieldsets = [
("basic",{'fields':['btitle']}),
("more",{'fields':['bpub_date']})
]
inlines = [HeroInfoInline]
现在在增加一本书的时候,同时会增加几个人物


4、显示布尔值
给HeroInfo加上类似的功能

class HeroInfoAdmin(admin.ModelAdmin):
# 显示的字段
list_display = ['id', 'hname', 'hgender', 'hcontent'] admin.site.register(BookInfo, BookInfoAdmin)
admin.site.register(HeroInfo, HeroInfoAdmin)
注意这里的性别hgender是用绿色的勾和红色的杠表示男和女。不太直观。可以考虑修改:

booktest/models.py
class HeroInfo(models.Model):
# 设置字段
hname = models.CharField(max_length = 10)
hgender = models.BooleanField()
hcontent = models.CharField(max_length = 1000)
hbook = models.ForeignKey(BookInfo, on_delete = models.CASCADE)
def __str__(self):
return self.hname def gender(self):
if self.hgender:
return '男'
else:
return '女'
gender.short_description = '性别'
booktest/admin.py
class HeroInfoAdmin(admin.ModelAdmin):
# 显示的字段
list_display = ['id', 'hname', 'gender', 'hcontent']
Django:管理站点的更多相关文章
- Django 管理站点
这一部分是关于 Django 的自动管理界面.这个特性是这样起作用的:它读取你模式中的元数据,然后提供给你一个强大而且可以使用的界面,网站管理者可以用它立即工作.在这里我们将讨论如何激活,使用和定制这 ...
- Django 1.10中文文档-第一个应用Part2-模型和管理站点
本教程继续Part1.我们将设置数据库,创建您的第一个模型,并快速介绍Django的自动生成的管理网站. 数据库设置 现在,编辑mysite/settings.py.它是一个用模块级别变量表示Djan ...
- 3 第一个Django应用 第2部分(管理站点)
Django会根据你写的模型文件完全自动地生成管理界面. 管理界面不是让访问网站的人使用的,它服务于网站管理者. 它用于网站的管理员. 3.1创建一个管理员用户 3.2进入管理站点 3.3管理站点的功 ...
- Django 1.10中文文档-第一个应用Part7-自定义管理站点
开发第一个Django应用,Part7 本教程上接Part6.将继续完成这个投票应用,本节将着重讲解如果用Django自动生成后台管理网站. 自定义管理表单 通过admin.site.register ...
- python学习笔记--Django入门四 管理站点--二
接上一节 python学习笔记--Django入门四 管理站点 设置字段可选 编辑Book模块在email字段上加上blank=True,指定email字段为可选,代码如下: class Autho ...
- Django学习:创建admin后台管理站点
Django自带一个后台管理站点,方便我们管理数据.这个界面只给管理员使用,并不对大众开放. 创建管理员用户 py manage.py createsuperuser 如下图所示: 用户名不填的话,默 ...
- python学习笔记--Django入门四 管理站点
上一节 Django入门三 Django 与数据库的交互:数据建模 "管理员界面"是基础功能中的重要部分. django.contrib 包 Django自动管理工具是djang ...
- django管理界面使用与bootstrap模板使用
一.bootstrap模板使用 1.去bootstrap官网找一个合适的模板,下载下来,右键另存为即可 bootstrap官网---->bootstrap中文文档3-------->起步- ...
- python 3+djanjo 2.0.7简单学习(三)--Django 管理页面
django里自带了一个管理页面,也就是后台,下面来学习一下 1.创建超级管理员 python manage.py createsuperuser 键入你想要使用的用户名,然后按下回车键: Usern ...
- 【解决方案】Django管理页面无法显示静态文件
[问题描述]:Django管理界面无法获取页面的css样式文件.图片等静态文件.调试模式下看到静态url显示404. [问题原因]:跟踪源码可以发现,静态文件的url是由Django自带的app(dj ...
随机推荐
- linux select函数详解
linux select函数详解 在Linux中,我们可以使用select函数实现I/O端口的复用,传递给 select函数的参数会告诉内核: •我们所关心的文件描述符 •对每个描述符,我们所关心的状 ...
- 开发第一个flutter程序 hello world
上一篇咱们配置了flutter的基本环境之后,那么本篇就来讲一下如何开发第一个小应用hello world 双击打开 android studio 选择plugins 找到 fultter 并且下载安 ...
- GSSAPIAuthentication=no
GSSAPI ( Generic Security Services Application Programming Interface) 是一套类似Kerberos 5的通用网络安全系统接口.该接口 ...
- ceph crush 之 crush_do_rule
crush_do_rule中,用了一个scratch空间来完成item的搜索. scratch空间总共有3个max_result这么大,并且按照max_result长度划分为三个部分(下图中的a. ...
- 模仿jQuery的ajax的封装
/* * 我们使用了ajax 的xmlHttpRequest 跟服务器进行交互. * * 交互了有四个基本步骤 * 1:创建对象 * 2:建立连接 * 3:发送请求 * 4:接收数据 * * 这些操作 ...
- CentOS 上开启 BBR 加速
BBR 算法需要 Linux 4.9 及以上的内核支持,所以想要使用该方式的需要先升级内核版本. 在 Cent OS 7 上的 Linux 内核是 3.10, 使用 uname -r 查看内核版本 [ ...
- npm和yarn的使用对比
NPM YARN 说明 npm init yarn init 初始化某个项目 npm install/link yarn install/link 默认的安装依赖操作 npm install taco ...
- Sass的安装(windows 10)
1.下载ruby 下载地址:https://rubyinstaller.org/downloads/ 如果觉得下载速度过慢,可以在我的百度去下载: 链接:https://pan.baidu.com/s ...
- c#.net基础
值类型:值类型的实例一般在线程的栈上分配 引用类型:引用类型的实例在线程的托管堆上分配 引用类型变量的Equals比较的是二者的引用地址而不是内部的值,值类型变量的Equals方法比较的是二者的值. ...
- spring mvc中获取请求URL
String baseUrl=request.getScheme()+"://"+request.getServerName()+":"+request.get ...