zoukankan      html  css  js  c++  java
  • Django学习之admin site

    • 登录管理员页面

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

    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"]达成的效果。

  • 相关阅读:
    基础之前ORM的一个框架(在OA系统上已经应用)
    自己创建的一个ORM框架
    spring cloud+docker 简单说一说
    有价值的数据
    Axis2Service客户端访问通用类集合List自定义类型
    java.io.IOException: Cleartext HTTP traffic to e.hiphotos.baidu.com not permitted
    Android Studio 3.x 自动生成多渠道包
    单例模式
    Linux(ubuntu 18.0.4) Java环境安装,环境变量配置
    ImageLoader常用方法注释
  • 原文地址:https://www.cnblogs.com/tmyyss/p/4371182.html
Copyright © 2011-2022 走看看