认识django2.0读书笔记(6)---第六章Django 站点管理
来源:互联网 发布:国信软件 编辑:程序博客网 时间:2024/06/07 03:51
文档下载地址:Django_2.0_中文教程 http://download.csdn.net/detail/julius_lee/6620099
在线地址:http://djangobook.py3k.cn/2.0/
Django 2.0 Book 关键内容记录,主要是为了帮助记忆和理清整个框架,同时以后忘了可以查看,回想。
1、 django.contrib包
Django 基本代码的组成部分,是对python标准库和普遍模式的实际表现
2、 激活管理界面
1) 修改settings.py文件
确保django.contrib.admin/sessions/auth/contenttypes 已加入到INSTALL_APPS中;
确保MIDDLEWARE_CLASSES包含django.middleware.common.CommonMiddleware,django.contrib.sessions.middleware.SessionMiddleware ,django.contrib.auth.middleware.AuthenticationMiddleware.(一般默认就可以了)
实际中创建项目后一般都如下:
MIDDLEWARE_CLASSES = (
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
)
2) 运行 python manage.py sysncdb,生成管理界面数据表;
3) 将admin访问配置在urls.py中,取消默认的注释:(r'^admin/', include(admin.site.urls)),
这样配置就完成了。
3、 使用管理工具
1)浏览器地址栏中输入runserver后的地址和端口进行登录;
2)设置语言:若显示的英语,需要显示中文,则可以更改mysite目录中settings.py中的语言和地区如下:
LANGUAGE_CODE = 'zh-cn'
TIME_ZONE = 'Asia/Shanghai'
这样时间和语言都变成本地的了
4、 加入Models到Admin管理中
在books目录下创建admin.py文件,导入:
from django.contrib import adminfrom mysite.books.models import Publisher,Author, Bookadmin.site.register(Publisher)admin.site.register(Author)admin.site.register(Book)
5、 admin工作方式
服务启动后,url.py引导URLconf,执行admin.autodiscover(),遍历INSTALL_APPS配置,寻找app目录中的admin.py文件,找到后调用admin.site.register()注册模块到管理工具,然后由管理工具进行显示;
6、 设置字段可选
即允许某些内容不填写
只需修改books/models.py文件
示例:
class Author(models.Model): first_name = models.CharField(max_length=30) last_name = models.CharField(max_length=40) email = models.EmailField(**blank=True** )#改空白为true
这样email处就可以选填了
7、 设置日期或数字型字段可选
特殊原因:SQL中NULL不同于空字符串,不接受空字符串。NULL是指定空值的唯一方法
示例:
class Book(models.Model): title = models.CharField(max_length=100) authors = models.ManyToManyField(Author) publisher = models.ForeignKey(Publisher) publication_date = models.DateField(**blank=True, null=True** )#可以为空
8、 自定义字段标签
在编辑页面中,字段的标签由模块的字段名称生成。
规则:空格替换下划线,首字母大写,例如:Book模块中publication_date的标签是Publication date
可以在模块中指定verbose_name来自定义
示例:
class Author(models.Model): first_name = models.CharField(max_length=30) last_name = models.CharField(max_length=40) email = models.EmailField(blank=True, **verbose_name='e-mail'** )#django会自动大写verbose的name。
9、 自定义列表
示例:显示姓名
class Author(models.Model): first_name = models.CharField(max_length=30) last_name = models.CharField(max_length=40) email = models.EmailField(blank=True, verbose_name='e-mail') **def __unicode__(self):** **return u'%s %s' % (self.first_name, self.last_name)**#显示每个作者的姓名
示例:显示作者列表
给author模块定义一个ModelAdmin类,修改admin.py如下:
from django.contrib import adminfrom mysite.books.models import Publisher,Author, Book **class AuthorAdmin(admin.ModelAdmin):** **list_display = ('first_name', 'last_name', 'email')**#这样,括号中的内容都会在界面显示出来 admin.site.register(Publisher)**admin.site.register(Author,AuthorAdmin)**#注册admin.site.register(Book)
示例:创建查询栏
class AuthorAdmin(admin.ModelAdmin): list_display = ('first_name', 'last_name', 'email') **search_fields = ('first_name', 'last_name')**#这样就可以按名字进行搜索了
示例:创建过滤器
from django.contrib import adminfrom mysite.books.models import Publisher,Author, Book class AuthorAdmin(admin.ModelAdmin): list_display = ('first_name', 'last_name', 'email') search_fields = ('first_name', 'last_name') **class BookAdmin(admin.ModelAdmin):**#这样右边就会显示标题,出版社,日期等过滤器了 **list_display = ('title', 'publisher', 'publication_date')** **list_filter = ('publication_date',)** admin.site.register(Publisher)admin.site.register(Author, AuthorAdmin)**admin.site.register(Book, BookAdmin)**
示例:修改排序方式
class BookAdmin(admin.ModelAdmin): list_display = ('title', 'publisher', 'publication_date') list_filter = ('publication_date',) date_hierarchy = 'publication_date' **ordering = ('-publication_date',)**#这样就可以按发布日期进行排序了
10、自定义编辑表单
示例:按指定字段顺序显示
class BookAdmin(admin.ModelAdmin): list_display = ('title', 'publisher', 'publication_date') list_filter = ('publication_date',) date_hierarchy = 'publication_date' ordering = ('-publication_date',) **fields = ('title', 'authors', 'publisher', 'publication_date')**#则会按照这个顺序进行排列,去掉括号中的对应内容,则去掉内容在页面中就会无法改动。
示例:自定义是多对多字段,即一个作者含多本书
class BookAdmin(admin.ModelAdmin): list_display = ('title', 'publisher', 'publication_date') list_filter = ('publication_date',) date_hierarchy = 'publication_date' ordering = ('-publication_date',) **filter_horizontal = ('authors',)**#水平显示选择框
这样做的结果是点击后,浏览器会单独弹出一个窗口,让用户作出选择
对应还有filter_vertical,可以垂直显示
11、用户、组和权限
创建 许可,编辑 许可和删除 许可
随机展示一下过去按照教程进行设计的界面:
差不多就能得到上面的管理界面了,具体如何设置和显示,前面已经有方法。
- 认识django2.0读书笔记(6)---第六章Django 站点管理
- 认识django2.0读书笔记(5)---第五章模型(django数据库层)
- 认识django2.0读书笔记(2)---第二章入门
- 认识django2.0读书笔记(4)---第四章模板
- 认识django2.0读书笔记(7)---第七章表单
- 第六章 Django管理站点
- 第六章 Django站点管理
- 第六章 Django站点管理
- 认识django2.0读书笔记(1)---第一章 介绍
- 认识django2.0读书笔记(3)---第三章视图和URL配置
- The Django Book 2.0--中文版--第六章 Django站点管理
- Django学习笔记(第六节)Django站点管理
- Django笔记(管理站点)
- Django站点管理
- Django站点管理--ModelAdmin
- django站点管理1
- Django管理站点
- Django 站点管理(Admin)
- TF-IDF与余弦相似性的应用(一):自动提取关键词
- Android 签名个人理解
- (delphi 7) GUI应用程序开发_Button、BitBon、CheckBox学习
- attribute 用法 section 部分
- 韩国风随机播放焦点广告
- 认识django2.0读书笔记(6)---第六章Django 站点管理
- 网络多线程 异步 同步处理
- Android TextView文字过多,添加滚动条
- java生成验证码,可刷新
- 嵌入式arm学习总结(三)--IIC 基于AT24C02
- Ubuntu 12.04.3 终端出现 Permission denied 解决方法
- 表(Table)和段(Segment)之间是什么关系
- android-universal-image-loader
- vector 使用说明