Django-admin 的使用
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 的使用的更多相关文章
- Django admin美化插件suit应用[原创]
前言 由于比较懒,自己弄了一个用户验证,没有自己写后台,用了django自带的user认证,并通过admin直接进行管理,但默认的admin并不漂亮,于是使用了这个django-suit插件,效果对比 ...
- Django admin 权威指南(一)
版本: Django 1.10 此部分由官方文档<6.5.1 The Django admin site>翻译而来. 6.5.1.1 概览 默认情况下,使用startproject的时候, ...
- Django admin 显示图片
我有一个表用来储存轮播图片,有一个 `picture` 字段储存的是图片的url,图片的 url 通过上传文件到 cdn 获得.目前这个表的编辑是通过自定义一个 `ModelForm`,然后重写 Dj ...
- [系统开发] Django Admin上传图片简单校验
我的 models里有个ImageField字段,用来保存用户头像,希望通过Django Admin上传时校验头像大小,如果太大就报错,并且不保存. 网上有不少方法,有的通过第三方软件实现,有的通过自 ...
- SQLAlchemy连接数据库并在django admin显示
SQLAlchemy 0.7 postgersql 9.0 SQLAlchemy连接数据库有两种方法,一种是classic,一种是modern 1,modern方法 from sqlalch ...
- Django admin site(一)ModelAdmin Options
Admin管理界面是django的杀手级应用.它读取你模式中的元数据,然后提供给你一个强大而且可以使用的界面,网站管理者可以用它立即向网站中添加内容. 要使用admin,可以按照下面的步骤: 将'dj ...
- Django Admin 简单部署上线
前言 打算为公司弄一个管理公用密码的平台,由于比较懒,就选择使用Django admin,默认的admin并不漂亮,于是我使用了这个django-suit插件来美化 如图: 是不是比原来的漂亮多了. ...
- Django admin究竟要怎么写才优雅
比如在Django admin 注册models时,会用到. 对于APP里自带的models,可以使用这种方式注册. from django.contrib import admin # Regist ...
- django admin.py settings 操作
dango, 怎么说呢,什么东西都内置了,什么东西都是自己的东西.用过flask, cherrypy, web.py, pyramid 等等python 框架后,再选用dango 觉得,理念有很大的区 ...
- Django admin 组件 原理分析与扩展使用 之 sites.py (一)
一 . 前言 Django 提供了admin 组件 为项目提供基本的管理后台功能(对数据表的增删改查). 本篇文章通过 admin源码 简单分析admin 内部原理 ,扩展使用方式,为以后进行定制和自 ...
随机推荐
- c++ list 容器
List vector在STL中是一个双向链表,它的内部结构和vector 或 deque截然不同.主要有以下几点: 1.List不支持随机存取.list没有提供下标操作符和at()的访问. 2.任何 ...
- c语言实战 BJT时间转化位UTC时间
题目是这样的: 题目内容: UTC是世界协调时,BJT是北京时间,UTC时间相当于BJT减去8.现在,你的程序要读入一个整数,表示BJT的时和分.整数的个位和十位表示分,百位和千位表示小时.如果小时小 ...
- ESP8266-iot-3
ESP8266 WIFI操作 参考资料 模式选择 程序: 把之前的Helloworld程序复制过来改成wifi工程 先输出获取的当前模式 编译后会出错,因为os_printf的头文件没有被包含进来 结 ...
- IntelliJ IDEA——maven环境下整合SSM
SSM整合目录结构 开发环境:JDK1.8:apache-tomcat-7.0.52 : MySql5.7 开发工具:IntelliJ IDEA pom.xml <?xml version=&q ...
- 应用Bundle捆绑压缩技术
从MVC4开始,我们就发现,项目中对Global.asax进行了优化,将原来在MVC3中使用的代码移到了[App_Start]文件夹下,而Global.asax只负责初始化.其中的BundleConf ...
- XE中rectangle实现渐变
Fill -> Kind -> Gradient(选项) -> Gradient(Edit) 添加颜色即可
- asp.net 设置分页
private const int PAGESIZE = 5; //定义每页有五行数据 private void FillPageList() { int pageCount = 0; // page ...
- 七月小说网 Python + GraphQL (三)
概述 后台数据库几个基本表基本搭建完毕,看了下Github Develop的V4 Api抛弃了RESTful,采用GraphQL,感觉很有意思,一看文档,竟然有Python的开源实现 Graphene ...
- vs2017 C++动态链接库的创建和调用(隐式)
一.VS创建动态链接库 1.打开vs新建项目 创建动态链接库 2.添加头文件.h,在h文件中添加如下内容: #pragma once//该头文件只编译一次#include<iostream> ...
- 以太坊系列之十八: 百行go代码构建p2p聊天室
百行go代码构建p2p聊天室 百行go代码构建p2p聊天室 1. 上手使用 2. whisper 原理 3. 源码解读 3.1 参数说明 3.1 连接主节点 3.2 我的标识 3.2 配置我的节点 3 ...