admin 组件的使用

Django 提供功能十分强大的后台管理组件 admin 来实现自动管理。

admin 是一个组件,与 APP 一样,项目启动一开始就加载了。在 setting.py 中的 INSTALLED_APPS 能够看到。

# Application definition

INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'Xadmin.apps.XadminConfig',
'app01.apps.App01Config',
'app02.apps.App02Config',
]

激活 admin

通常在 urls.py 文件中设置好有关 admin 的 url 就算是激活了。

from django.conf.urls import url
from django.contrib import admin urlpatterns = [
url(r'^admin/', admin.site.urls),
]

使用 admin

admin 是后台管理工具,可以通过 http://127.0.0.1:8000/admin/ 访问到后台管理界面,管理员用户可以通过 python manage.py createsuperuser 命令创建。

想要某个数据模型可以被 admin 管理需要提前进行注册。

在每个 APP 下面都有 admin.py 这个文件,在该文件中进行数据模型的注册。

from django.contrib import admin

# Register your models here.
from .models import *
admin.site.register(Book)

定制 admin

在 admin.py 中对数据模型注册完事后就可以使用简单的增删改查等功能,如果想要定制更多的操作,需要通过 ModelAdmin 类进行操作。

首先,创建继承于 ModelAdmin 的配置类:

class BookConfig(admin.ModelAdmin):
...定制信息

然后,对数据模型进行注册时加上配置类:

admin.site.register(Book, BookConfig)

ModelAdmin 提供的定制功能有:

1.list_display 设置在列表中显示的列

class BookConfig(admin.ModelAdmin):

	def deletes(self):
return mark_safe("<a href=''>删除</a>") # 在展示页面会显示哪些字段内容,除了已有的字段,还可以添加自定义函数为字段显示
list_display = ["title", "price", "publishDate", "publish", deletes]

2.list_display_links 设置哪些列可以点击跳转到修改界面

class BookConfig(admin.ModelAdmin):
# 设置哪些字段内容转成可点击的链接,转到更改页面
list_display_links = ["title", "price"]

3.list_filter 在右侧设置可以筛选过滤的列

class BookConfig(admin.ModelAdmin):
# 设置可以用哪些字段进行分组过滤
list_filter = ["title", "price", "publish"]

4.search_fields 设置搜索时所搜索的列

class BookConfig(admin.ModelAdmin):
# 设置可以按照哪些字段进行搜索
search_fields = ["title", "price"]

5.actions 设置批处理的动作

class BookConfig(admin.ModelAdmin):
def patch_init(self, request, queryset):
queryset.update(price=100) # 设置批量处理动作的描述名称
patch_init.short_description = "批量初始化" # 设置批量处理的动作
actions = [patch_init]

Django-admin 的使用的更多相关文章

  1. Django admin美化插件suit应用[原创]

    前言 由于比较懒,自己弄了一个用户验证,没有自己写后台,用了django自带的user认证,并通过admin直接进行管理,但默认的admin并不漂亮,于是使用了这个django-suit插件,效果对比 ...

  2. Django admin 权威指南(一)

    版本: Django 1.10 此部分由官方文档<6.5.1 The Django admin site>翻译而来. 6.5.1.1 概览 默认情况下,使用startproject的时候, ...

  3. Django admin 显示图片

    我有一个表用来储存轮播图片,有一个 `picture` 字段储存的是图片的url,图片的 url 通过上传文件到 cdn 获得.目前这个表的编辑是通过自定义一个 `ModelForm`,然后重写 Dj ...

  4. [系统开发] Django Admin上传图片简单校验

    我的 models里有个ImageField字段,用来保存用户头像,希望通过Django Admin上传时校验头像大小,如果太大就报错,并且不保存. 网上有不少方法,有的通过第三方软件实现,有的通过自 ...

  5. SQLAlchemy连接数据库并在django admin显示

    SQLAlchemy 0.7     postgersql  9.0 SQLAlchemy连接数据库有两种方法,一种是classic,一种是modern 1,modern方法 from sqlalch ...

  6. Django admin site(一)ModelAdmin Options

    Admin管理界面是django的杀手级应用.它读取你模式中的元数据,然后提供给你一个强大而且可以使用的界面,网站管理者可以用它立即向网站中添加内容. 要使用admin,可以按照下面的步骤: 将'dj ...

  7. Django Admin 简单部署上线

    前言 打算为公司弄一个管理公用密码的平台,由于比较懒,就选择使用Django admin,默认的admin并不漂亮,于是我使用了这个django-suit插件来美化 如图: 是不是比原来的漂亮多了. ...

  8. Django admin究竟要怎么写才优雅

    比如在Django admin 注册models时,会用到. 对于APP里自带的models,可以使用这种方式注册. from django.contrib import admin # Regist ...

  9. django admin.py settings 操作

    dango, 怎么说呢,什么东西都内置了,什么东西都是自己的东西.用过flask, cherrypy, web.py, pyramid 等等python 框架后,再选用dango 觉得,理念有很大的区 ...

  10. Django admin 组件 原理分析与扩展使用 之 sites.py (一)

    一 . 前言 Django 提供了admin 组件 为项目提供基本的管理后台功能(对数据表的增删改查). 本篇文章通过 admin源码 简单分析admin 内部原理 ,扩展使用方式,为以后进行定制和自 ...

随机推荐

  1. Tensorflow学习(练习)—CPU训练模型

    Mask R-CNN - Train on Shapes Dataset This notebook shows how to train Mask R-CNN on your own dataset ...

  2. C/C++代码覆盖率工具gcov、lcov

    gcov是一个可用于C/C++的代码覆盖工具,是gcc的内建工具.下面介绍一下如何利用gcov来收集代码覆盖信息. 想要用gcov收集代码覆盖信息,需要在gcc编译代码的时候加上这2个选项 “-fpr ...

  3. PostgreSQL9.3+PostGIS2.1安装配置

    Postgresql——Postgresql是一种对象关系型数据库.下载地址:http://www.postgresql.org/download/ postgis (可选)——是一个空间数据库,它扩 ...

  4. C# DateTime.ToString()的各种日期格式

    DateTime.ToString()的各种日期格式 例: ToString:2016/9/27 0:00:00 ToString("yyyy/MM/dd"):2016/09/27 ...

  5. 实践作业3:白盒测试----开始测试用例的设计DAY3

    白盒测试与黑盒测试很大不同之处在于白盒测试必须读相应代码,对代码有一定了解的情况下针对代码的逻辑进行测试用例的设计.白盒测试有六种覆盖标准:语句覆盖.判定覆盖.条件覆盖.判定/条件覆盖.条件组合覆盖和 ...

  6. bootstrap页面效果图

    <!DOCTYPE html><html lang="zh-cn"><head><meta charset="utf-8&quo ...

  7. JavaEE互联网轻量级框架整合开发(书籍)阅读笔记(4):JDK动态代理+拦截器

    一.拦截器的理解 学习拦截器之前需要对动态代理和反射有一定的基础. 官方说法:         java里的拦截器是动态拦截Action调用的对象.它提供了一种机制可以使开发者可以定义在一个actio ...

  8. 通过fork函数创建进程的跟踪,分析linux内核进程的创建

    作者:吴乐 山东师范大学 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 一.实验过程 1.打开gdb, ...

  9. 测试中常用到的linux命令

    1. man         格式化以及列出命令的(在线)操作手册.         使用方法                 man [ -options ] name       man man ...

  10. spring+hibernate工作流程文件名理解

    reg.jsp regsuccess.jsp User.java UserDAO.java UserDAOImpl.java User.hbm.xml Reg.java RegImpl.java Re ...