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 ...
随机推荐
- OpenCV 学习笔记 06 SIFT使用中出现版权问题error: (-213:The function/feature is not implemented)
1 错误原因 1.1 报错全部信息: cv2.error: OpenCV(4.0.1) D:\Build\OpenCV\opencv_contrib-4.0.1\modules\xfeatures2d ...
- Easyui-DataGrid 分页多选框 及 遍历所有选中项
html <table id='grid' class='easyui-datagrid' style='height:500px' url='Ajax-index.php?module=< ...
- imp-oracle10g数据库dmp导入到11g数据库提示IMP-00058,表或试图不存在
拿了一份从10g数据库导出的dmp,本机安装的是11.2g的oracle数据库,执行imp导入后提示: IMP-00058: 遇到 ORACLE 错误 942ORA-00942: 表或视图不存在 开始 ...
- Spark 核心篇-SparkContext
本章内容: 1.功能描述 本篇文章就要根据源码分析SparkContext所做的一些事情,用过Spark的开发者都知道SparkContext是编写Spark程序用到的第一个类,足以说明SparkCo ...
- Linux查看文件总的数据行数,并按行拆分
先利用 wc -l BLM.txt 读出 BLM.txt 文件一共有多少行. 再 1. 以行数拆分 -l 参数: split –l 50 原始文件 拆分后文件名前缀 例:以50行对文件进行 ...
- STM32F103VET6 ADC采集64点做FFT变换
http://www.stmcu.org/module/forum/thread-598459-1-11.html http://bbs.21ic.com/icview-589756-1-1.html ...
- 【转】Android开发教程 --- Android调用WS
原文地址:http://www.cnblogs.com/jasoncc/archive/2011/12/23/2297950.html Hi,大家好! 上节我们搭建了Java版的WS,那么在Andro ...
- 记录一次在安装双系统的过程(先有debian, 后加windows 8.1)
突破的难题: 如何在一整个根目录的分区中切出来一半用于安装windows8.1呢? 当初安装debian系统时, 由于脑残,直接把整个500G的硬盘分给了根目录 / ,所以整个磁盘就TMD的一个主 ...
- (转) at&T语法格式 与 at&T - intel格式对比
原地址 示例: movl (%ebp), %eax, 等同于Intel格式中的 ] ,AT&T中,源操作数在左,目的操作数在右.“l”是Longword,相当于Intel格式中的dword p ...
- [AWS] Amazon Cognito
看懂 [AWS] User management and [AWS] OAuth2.0 才方便看到此篇. Ref: 常见 Amazon Cognito 场景 Amazon Cognito 的两个主要组 ...