django1.5 官方文档阅读笔记(二)
来源:互联网 发布:2017淘宝恶意退款教程 编辑:程序博客网 时间:2024/05/18 15:07
Writing your first Django app, part 2
这一节主要是讲Django自动生成后台管理网页。
(一)激活管理页面
Django的管理页面默认是不能用的,为了激活管理页面,需要做如下三件事:
1、在INSTALLED_APPS中反注释掉(uncomment) django.contrib.admin
2、运行 python manage.py syncdb ,因为你增加了一个新的应用,所以要更新数据库
3、编辑mysite/urls.py文件,然后反注释引用到admin的行,总共有三处,最后的urls.py应该像这样:
from django.conf.urls import patterns, include, url# Uncomment the next two lines to enable the admin:from django.contrib import adminadmin.autodiscover()urlpatterns = patterns('', # Examples: # url(r'^$', '{{ project_name }}.views.home', name='home'), # url(r'^{{ project_name }}/', include('{{ project_name }}.foo.urls')), # Uncomment the admin/doc line below to enable admin documentation: # url(r'^admin/doc/', include('django.contrib.admindocs.urls')), # Uncomment the next line to enable the admin: url(r'^admin/', include(admin.site.urls)),)
(二)启动服务器
启动服务器:
python manage.py runserver
然后打开网页,输入http://127.0.0.1:8000/admin/,就会看到如下页面:
(三)进入管理网页
然后输入用户名和密码,这里的用户名和密码是我们在第一节创建superuser中的用户名和密码:
(四)让我们的Poll应用也可以加入到管理页面
我们需要告诉管理员Poll对象也有一个管理接口,我们编辑polls/admin.py,改成如下:
重启服务器,再打开刚才的网站,就可以看到Poll对象了
(五)使用admin的功能(略)
(六)定制管理页面
改变编辑页面的属性的顺序:
修改polls/admin.py文件,改为下面的:
创建一个admin的类,作为register的第二个参数,这样的话,poll类的属性顺序就改变了:
我们经常会遇到多个属性,我们可以将他们分为fieldset:
class PollAdmin(admin.ModelAdmin): fieldsets = [ (None, {'fields': ['question']}), ('Date information', {'fields': ['pub_date']}), ]admin.site.register(Poll, PollAdmin)再次打开Poll页面:
同时可以设置class的collapse属性,将某个fieldset折叠起来:
(七)添加相关对象
虽然我们有了Poll的管理页面,但是一个Poll对于多个Choice,当前的页面并没有看到Choice。
有2种方法解决这个问题,第一种是像注册Poll一样注册一个Choice
from polls.models import Choiceadmin.site.register(Choice)就可以看到Choice的管理页面了。
为了一次性添加多个Choice,修改admin.py,删除了Choice的register():
from django.contrib import adminfrom polls.models import Choice, Pollclass ChoiceInline(admin.StackedInline): model = Choice extra = 3class PollAdmin(admin.ModelAdmin): fieldsets = [ (None, {'fields': ['question']}), ('Date information', {'fields': ['pub_date'], 'classes': ['collapse']}), ] inlines = [ChoiceInline]admin.site.register(Poll, PollAdmin)以上的目地是告诉Django:Choice对象是在Poll对象的页面上进行编辑,现在看下添加Poll的页面:
可以看到,Choice可以在Poll页面进行添加了。
同时,为了减小占用的页面空间,Django提供了另一种叫做TabularInline样式的布局:
class ChoiceInline(admin.TabularInline): #...结果如下所示:
(八)定制admin change list
默认,Django显示每个对象的str()值,但是我们有时需要显示对象的所有属性,为了达到这个目的,需要使用list_display这个选项,如下:
class PollAdmin(admin.ModelAdmin): # ... list_display = ('question', 'pub_date', 'was_published_recently')页面效果如下所示:
同时,可以增加一些特性:
class Poll(models.Model): # ... def was_published_recently(self): return self.pub_date >= timezone.now() - datetime.timedelta(days=1) was_published_recently.admin_order_field = 'pub_date' was_published_recently.boolean = True was_published_recently.short_description = 'Published recently?'
同时增加Filters to PollAdmin:
list_filter = ['pub_date']结果如下:
可以根据日期进行筛选。
我们也可以为某个域添加搜索功能:
search_fields = ['question']这样在顶部产生一个搜索框,根据question的内容进行搜索。
也可以加入一个按照日期继承结果排序的功能:
date_hierarchy = 'pub_date'
(九)定制管理页面的外观
定制项目的模板
在你的项目目录下创建一个模板的文件夹。打开mysite/setting.py ,添加模板的目录:
TEMPLATE_DIRS = ( '/path/to/mysite/templates', # Change this to your own directory.)
然后将Django的默认模板拷到自己项目的template文件夹下:
如果找不到Django目录的话,可以使用如下方法:
python -c "import syssys.path = sys.path[1:]import djangoprint(django.__path__)"然后改写这个base_site.html即可。
Django的任何默认管理页面的模板都可以被重写,我们只需要将模板文件从Django目录拷贝到我们项目的目录,然后修改即可。
(十)定制管理的主页面
主页面的模板文件是admin/index.html,安装前述方法一样操作即可。
- django1.5 官方文档阅读笔记(二)
- django1.5 官方文档阅读笔记(一)
- django1.5 官方文档阅读笔记(三)
- django1.5 官方文档阅读笔记(四)
- Solr入门之官方文档6.0阅读笔记系列(二)
- mysql官方文档阅读笔记(二)整体目录翻译
- Django1.10文档学习笔记二
- maven官方文档阅读笔记
- Yii2 官方文档阅读笔记
- django1.10官方文档翻译
- django1.10官方文档翻译
- ProGaurd官方文档学习笔记(二)
- Django1.8文档阅读手记
- Android OpenCV 官方文档阅读笔记
- mysql官方文档阅读笔记 MVCC
- 性能优化官方文档阅读笔记
- RabbitMQ官方文档使用指南阅读笔记
- Quagga官方说明文档阅读笔记
- ubuntu12.04下载Android源代码
- HTML 5 服务器发送事件注意事项
- 数据库中锁机制的实现
- mysql insert操作详解
- Linux的电源管理架构
- django1.5 官方文档阅读笔记(二)
- 线程和进程
- Windows Touch Gestures Overview
- ajax报错!“完成该操作所需的数据还不可使用‘
- linux下date命令用法
- 一个控制文件损坏
- jacob实现word和xml的互转化
- 2011Java高职竞赛样题9,10,11
- Java Daemon线程