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 ...
随机推荐
- system函数遇到的问题
这几天调程序(嵌入式linux),发现程序有时就莫名其妙的死掉,每次都定位在程序中不同的system()函数,直接在shell下输入system()函数中调用的命令也都一切正常.就没理这个bug,以 ...
- Docker 网络管理
网络模式 容器网络访问原理 桥接宿主机网络和配置固定IP地址 Docker 支持五种网络模式: 1.网络模式: --net 1.1 bridge 默认网络,Docker启动后默认创建一个docke ...
- Java数据类型转换规则
- python中的生成器函数是如何工作的?
以下内容基于python3.4 1. python中的普通函数是怎么运行的? 当一个python函数在执行时,它会在相应的python栈帧上运行,栈帧表示程序运行时函数调用栈中的某一帧.想要获得某个函 ...
- 第三百九十四节,Django+Xadmin打造上线标准的在线教育平台—Xadmin后台进阶开发配置2,以及目录结构说明
第三百九十四节,Django+Xadmin打造上线标准的在线教育平台—Xadmin后台进阶开发配置2,以及目录结构说明 设置后台列表页面可以直接修改字段内容 在当前APP里的adminx.py文件里的 ...
- ORA-00257:archiver error问题处理方法
原文链接:http://www.7747.net/database/201109/104615.html ORA-00257: archiver error. Connect internal onl ...
- pathway 中几张特殊的通路图
pathway 的ID 是5个数字的组合,在pathway 数据库中,有几类通路图非常特殊: 1) 第一类, 以 011 开头的通路 共有 01100, 01120, 01130 三张通路图,从外观 ...
- Php实现版本比较接口
版本号格式: A.B.C, 字符串形式 <?php // 强更版本, 客户端版本 $f = '5.8.5'; $c = '5.8.4'; // 字符串分割并转换成整数数组 function Sp ...
- for循环 while循环 break跳出循环 continue结束本次循环 exit退出整个脚本
- 转:【WebView的cookie机制 】轻松搞定WebView cookie同步问题
原文链接:http://blog.csdn.net/fengyuzhengfan/article/details/51517622 在进行APP+H5混合开发的时候,一些功能是用native方法实现的 ...