启用管理员功能
Django的管理员功能默认是不启用的——这是一个可选项。想要为你的程序启用管理员功能,需要做这三样事情:
1.在INSTALLED_APPS设置中添加"django.contrib.admin"。
2.运行python manage.py syncdb。当你添加一个新的应用程序到INSTALLED_APPS时,数据库的表需要手动更新。
3.编辑文件mysite/urls.py,取消注释"Uncomment the next two lines…"下的那些行注释。这个文件是一个URL映射。
最后,你的urls.py文件应该像下面的那样:
from django.conf.urls.defaults import * # Uncomment the next two lines to enable the admin: from django.contrib import admin admin.autodiscover() urlpatterns = patterns('', # Example: # (r'^mysite/', include('mysite.foo.urls')), # Uncomment the admin/doc line below and add 'django.contrib.admindocs' # to INSTALLED_APPS to enable admin documentation: # (r'^admin/doc/', include('django.contrib.admindocs.urls')), # Uncomment the next line to enable the admin: (r'^admin/(.*)', admin.site.root), )
启动开发版服务器
让我们启动开发版服务器并浏览管理员页面。
python manage.py runserver
现在,打开浏览器,在你的本地域中进入"/admin/"——如,htt://127.0.0.1:8000/admin/。你将会看到管理员的登录界面:
进入管理员页面
现在,尝试登录一下。(你在前面的教程中已经创建了超级用户帐号,还记得吗?)你将会看到管理员首页:
你会看到一些可编辑的内容,包括组,用户和站点。这些都是Django默认的核心特性。
使poll app在管理员站点中可修改
但我们的poll app在哪里呢?它没有在管理员站点首页出现。
只要做一点点的工作就行了:我们需要告诉admin,Poll对象有一个admin接口。
要做用这点,在你的polls文件夹中创建一个文件admin.py,然后把它编辑成这样:
Code
你需要重新启动开发版服务器才能看到你的变化。通常的,这个服务器会在你修改文件后自动重启,但新那一个文件并不会触发它的重启逻辑。
浏览免费的管理功能
现在,我们已经注册了Poll,Django知道了要把它显示在管理员站点的首页上:
单击"Polls"进入polls的"change list"页面。这个页面显示数据库中所有的polls,让我们选择其中一个然后修改它吧。
这里有一个我们在先前的教程中创建的"What's up?" poll:
单击"What's up?" poll然后编辑它:
注意这些东西:
1.这个表单是根据Poll模型自动生成的。
2.不现的模型域类型(DateTimeField, CharField)转换成适当的HTML input控件。每种域类型都知道怎样显示在Django的管理员站点中。
3.每个DateTimeField都会获得一个免费的JavaScript图标。日期是"Today"和一个日历控件,时间是"now"和一个方便的包含有常用的时间值的弹出框。
页面下面的按钮是一些选项:
1.Save——保存更改并返回列出这个对象类型被更改的部分的页面。
2.Save and continue editing——保存更改并重新加载这些对象的管理员页面。
3.Save and add another——保存更改并加载这个对象类型的新的空表单。
4.Delete——显示一个删除确认页面。
通过单击"Today"和"Now"的快捷图标来更改"Date published"的值。单击"Save and continue editing",然后单击右上角的"History"。
你将看到一个页面,它列出了你通过Django管理功能所做的所有更改,包括时间和更改人的用户名: