首页 > 其他 > 详细

Django学习之admin site

时间:2015-03-27 12:32:55      阅读:253      评论:0      收藏:0      [点我收藏+]
  • 登录管理员页面

首先,我们需要一个管理员账户,这样我们才能登录到管理员页面。

tmyyss@ubuntu:~/python/django/myproject$ python manage.py createsuperuser
Username: admin
Email address: admin@163.com
Password: 
Password (again): 
Superuser created successfully.

启动开发服务器

tmyyss@ubuntu:~/python/django/myproject$ python manage.py runserver
Performing system checks...

System check identified no issues (0 silenced).
March 27, 2015 - 01:27:27
Django version 1.7.7, using settings myproject.settings
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

打开浏览器,在浏览器中输入http://127.0.0.1/admin,回车,然后输入刚才创建的管理员账户名和密码。

就会显示如下页面技术分享

虽然进入了管理员界面,但是我们如何管理我们创建的应用呢?

我们还需要做一件事,得告诉管理员我们创建的某个应用对象有管理员接口,修改blog/admin.py

from django.contrib import admin
from models import Blog     //导入Blog类

# Register your models here.
admin.site.register(Blog)  告诉管理员,Blog拥有管理员接口

然后,我们再次输入http://127.0.0.1:8000/admin/

技术分享

 

点击Blogs,我们能看到我们已经添加的文章,点击文章,我们能修改其中的内容;同时注意到右上角有一个“Add blog"的按钮,点击,我们可以添加新的文章。

技术分享

  • 定制管理员页面

通过注册Blog,管理员界面会创建一个默认的表单,如上面几个图例所示,但是有时候,我们需要定制我们自己的管理员界面。

我们发现一个问题,上图显示的只是文章的标题(title);我们想同时显示创建时间,怎么办呢?

只需修改blog/admin.py如下就行

from django.contrib import admin
from models import Blog

class Blogadmin(admin.ModelAdmin):
    list_display=(title,created_time) //表示要显示的有两个fields,一个titel,一个created_time.

admin.site.register(Blog,Blogadmin)

刷新下刚才的页面,我们发现变成了如下

技术分享

我们可以通过点击”title"、”created_time"来对已经存在的文章进行排序

我们也可以添加其它的过滤规则。修改blog/admin.py

from django.contrib import admin
from models import Blog

class Blogadmin(admin.ModelAdmin):
    list_display=(title,created_time)
    list_filter=[created_time]    //将会在页面中加入一个时间过滤的slidebar

admin.site.register(Blog,Blogadmin)

页面效果

技术分享

 

修改完了这个列表界面,我们又对添加博客中各个Fields的排列顺序不满意,咋办,继续修改blog/admin.py

from django.contrib import admin
from models import Blog

class Blogadmin(admin.ModelAdmin):
    list_display=(title,created_time)
    fields=[title,text,created_time,published_time,user]  //通过调整fields
列表中各个元素的显示顺序来调整页面中的显示顺序
admin.site.register(Blog,Blogadmin)

我们再来看一下创建博客界面,我们发现user,放到了最下面

技术分享

 

恩,还是看得不爽,我们现在给每个fieds添加一个标题

from django.contrib import admin
from models import Blog

class Blogadmin(admin.ModelAdmin):
    list_display=(title,created_time)
    fieldsets=[
        (author,{fields:[user]}),
        (title,{fields:[title]}),
        (text,{fields:[text]}),
        (Date infomation,{fields:[created_time,published_time],classes:[collapse]}),
    ]  //fiedsets可以对fields的显示效果进行设置

admin.site.register(Blog,Blogadmin)

让我们来看一下效果。

技术分享

我们看到每个fields都添加了标题,同时我们也发现时间日期被隐藏了,这是"classes":["collapse"]达成的效果。

 

Django学习之admin site

原文:http://www.cnblogs.com/tmyyss/p/4371182.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!