Django_Admin操作
Django_Admin
创建Django_Admin 管理账户
D:\github\Django_Aadmin>python manage.py createsuperuser
Username (leave blank to use 'dpad'): root
Email address:
Password: # 密码有复杂度要求
Password (again):
Superuser created successfully.
添加表到 Django_Admin 中进行管理
from django.contrib import admin
from app01 import models
# 添加 Department 表到 Django_Admin 管理
admin.site.register(models.Department)
设置显示为 正常名而非 UserInfo object
1.在创建表的时候,添加__str__(self)
class UserInfo(models.Model):
"""
用户表
"""
username = models.CharField(max_length=32)
email = models.EmailField(max_length=32)
dp = models.ForeignKey(to="Department")
def __str__(self):
return self.username
定制当前列表页面,显示哪几列数据admin.py 文件中
from django.contrib import admin
from app01 import models
# 方法一
class UserInfoConfig(admin.ModelAdmin):
# 定制当前列表页面,显示哪几列数据
list_display = ["username", "email", "dp"]
# list_display_links = ["email"] # 设置 可点击 <a> 标签在哪个 字段上
# 继承定义的 UserInfoConfig 类
admin.site.register(models.UserInfo, UserInfoConfig)
# 方法二
@admin.register(models.UserInfo) # 通过装饰器实现
class UserInfoConfig(admin.ModelAdmin):
list_display = ("username", "email", "dp") # 第一个参数可以是列表
自定义编辑列
1.定义编辑列的函数值
from django.contrib import admin
from app01 import models
@admin.register(models.UserInfo)
class UserInfoConfig(admin.ModelAdmin):
list_display = ("username", "email", "dp", "edit", "remove")
list_display_links = ["edit", "remove"]
def edit(self, obj):
return "编辑"
def remove(self, obj):
return "删除"
自定义分组功能
from django.contrib import admin
from app01 import models
@admin.register(models.UserInfo)
class UserInfoConfig(admin.ModelAdmin):
list_display = ("username", "email", "dp", "edit", "remove")
list_display_links = ["edit", "remove"]
# ##分组查询 过滤器
list_filter = ["dp"]
def edit(self, obj):
return "编辑"
def remove(self, obj):
return "删除"
# 添加 Department 表到 Django_Admin 管理
admin.site.register(models.Department)
自定义指定的列,处于可修改状态
from django.contrib import admin
from app01 import models
@admin.register(models.UserInfo)
class UserInfoConfig(admin.ModelAdmin):
list_display = ("username", "email", "dp", "edit", "remove")
list_display_links = ["edit", "remove"]
list_filter = ["dp"]
# 时刻处于可修改状态,但该列不能处于可点击<a> 标签状态
list_editable = ('username',)
def edit(self, obj):
return "编辑"
def remove(self, obj):
return "删除"
# 添加 Department 表到 Django_Admin 管理
admin.site.register(models.Department)
自定义指定的列,可用于模糊查询(出现搜索框)
from django.contrib import admin
from app01 import models
@admin.register(models.UserInfo)
class UserInfoConfig(admin.ModelAdmin):
list_display = ("username", "email", "dp", "edit", "remove")
list_display_links = ["edit", "remove"]
list_editable = ('username',)
list_filter = ["dp"]
# 可用于模糊查询的列
search_fields = ["username", "email",]
def edit(self, obj):
return "编辑"
def remove(self, obj):
return "删除"
# 添加 Department 表到 Django_Admin 管理
admin.site.register(models.Department)
定义编辑页面 上下都有可点击保存按钮
from django.contrib import admin
from app01 import models
@admin.register(models.UserInfo)
class UserInfoConfig(admin.ModelAdmin):
list_display = ("username", "email", "dp", "edit", "remove")
list_display_links = ["edit", "remove"]
list_filter = ["dp"]
search_fields = ["username", "email",]
# 定义编辑页面 上下都有可点击保存按钮
save_on_top = True
def edit(self, obj):
return "编辑"
def remove(self, obj):
return "删除"
# 添加 Department 表到 Django_Admin 管理
admin.site.register(models.Department)
定义选中动作,批量执行操作
from django.contrib import admin
from app01 import models
@admin.register(models.UserInfo)
class UserInfoConfig(admin.ModelAdmin):
list_display = ("username", "email", "dp", "edit", "remove")
list_display_links = ["edit", "remove"]
list_filter = ["dp"]
search_fields = ["username", "email",]
save_on_top = True
# fields = ('username',"email")
def edit(self, obj):
return "编辑"
def remove(self, obj):
return "删除"
# 定制Action行为具体方法
def func(self, request, queryset):
print(self, request, queryset)
print("可以拿到选中的 ID 值:", request.POST.getlist('_selected_action'))
id_list = request.POST.getlist('_selected_action')
# 数据库操作,删除选中的 id 数据
# models.UserInfo.objects.filter(id__in=id_list).delete()
func.short_description = "自定义删除选中"
actions = [func, ] # 会触发执行 func 函数
# 添加 Department 表到 Django_Admin 管理
admin.site.register(models.Department)
参考:http://www.cnblogs.com/wupeiqi/articles/7444717.html
Django_Admin操作的更多相关文章
- Django_admin组件
1.Django_admin组件的意义 作者:Eric 微信:loveoracle11g 新建Django项目bms图书管理系统 App为book book/models.py添加表关系 from d ...
- 关于DOM的操作以及性能优化问题-重绘重排
写在前面: 大家都知道DOM的操作很昂贵. 然后贵在什么地方呢? 一.访问DOM元素 二.修改DOM引起的重绘重排 一.访问DOM 像书上的比喻:把DOM和JavaScript(这里指ECMScri ...
- Sql Server系列:分区表操作
1. 分区表简介 分区表在逻辑上是一个表,而物理上是多个表.从用户角度来看,分区表和普通表是一样的.使用分区表的主要目的是为改善大型表以及具有多个访问模式的表的可伸缩性和可管理性. 分区表是把数据按设 ...
- C# ini文件操作【源码下载】
介绍C#如何对ini文件进行读写操作,C#可以通过调用[kernel32.dll]文件中的 WritePrivateProfileString()和GetPrivateProfileString()函 ...
- js学习笔记:操作iframe
iframe可以说是比较老得话题了,而且网上也基本上在说少用iframe,其原因大致为:堵塞页面加载.安全问题.兼容性问题.搜索引擎抓取不到等等,不过相对于这些缺点,iframe的优点更牛,跨域请求. ...
- jquery和Js的区别和基础操作
jqery的语法和js的语法一样,算是把js升级了一下,这两种语法可以一起使用,只不过是用jqery更加方便 一个页面想要使用jqery的话,先要引入一下jqery包,jqery包从网上下一个就可以, ...
- ASP.NET Aries 入门开发教程7:DataGrid的行操作(主键操作区)
前言: 抓紧勤奋,再接再励,预计共10篇来结束这个系列. 上一篇介绍:ASP.NET Aries 入门开发教程6:列表数据表格的格式化处理及行内编辑 本篇介绍主键操作区相关内容. 1:什么时候有默认的 ...
- 如何在高并发环境下设计出无锁的数据库操作(Java版本)
一个在线2k的游戏,每秒钟并发都吓死人.传统的hibernate直接插库基本上是不可行的.我就一步步推导出一个无锁的数据库操作. 1. 并发中如何无锁. 一个很简单的思路,把并发转化成为单线程.Jav ...
- 【翻译】MongoDB指南/CRUD操作(四)
[原文地址]https://docs.mongodb.com/manual/ CRUD操作(四) 1 查询方案(Query Plans) MongoDB 查询优化程序处理查询并且针对给定可利用的索引选 ...
随机推荐
- 如何生成添加前缀的顺序DIV
今天我们这边的需求是生产类似于 div1 div2 div3 这种的方式. filters: { pre: function (value) { return 'div' + value; } }, ...
- Redis主从哨兵和集群搭建
主从配置 哨兵配置 集群配置 1.主从: 国王和丞相,国王权力大(读写),丞相权利小(读) 2.哨兵: 国王和王子,国王死了(主服务挂掉),王子继位(从服务变主服务) 3.集群: 国王和国王,一个国王 ...
- MySQL:Your password has expired. To log in you must change it using a client that supports expired passwords
MySQL:V5.6.37 安装后发现没远程权限,为了方便,就直接把hostname@root修改为%@root,密码修改为和localhost@root一样 然后尴尬的事情发生了,本地登陆正常,远程 ...
- Delphi 使用 Datasnap 的几种三层应用技术总结
Delphi 使用 Datasnap 进行三层应用开发,积累了几种技术,总结如下: 1.(推荐!)在 Datasnap 服务端 使用 TDatasetProvider,客户端 使用 TDSProv ...
- Bringing Native Performance to Electron
Bringing Native Performance to Electron https://realm.io/blog/native-performance-electron-realm/ Rea ...
- HTTP协议05-Web服务器
1)用单台虚拟主机实现多个域名 HTTP/1.1规范允许一台HTTP服务器搭建多个Web站点.比如,提供Web托管服务的供应商,可以用一台服务器为多位客户服务,也可以以每位客户持有的域名运行各自不同的 ...
- SQL SERVER 常见SQL和函数使用
一.语法 参考原文:https://blog.csdn.net/xushaozhang/article/details/55053037 1.查询插入 (1)SELECT INTO 语句格式: Ora ...
- Linux内核设计与实现之虚拟文件系统的读书笔记
Linux内核设计与实现之虚拟文件系统的读书笔记 虚拟文件系统(VFS) 为用户空间提供了文件和文件系统相关的接口. 文件系统抽象层 内核在底层文件系统上建立了一个抽象层, 该抽象层使Linux能够支 ...
- 033_linux操作系统火焰图探测系统性能
火焰图是定位疑难杂症的神器,比如 CPU 占用高.内存泄漏等问题.特别是 Lua 级别的火焰图,可以定位到函数和代码级别. 一.研究 https://moonbingbing.gitbooks.io/ ...
- linux 提高代码质量的工具
很多IT公司对于软件开发都有严格的分工,这包括设计.测试.服务支持等等.但是,我一直都认为只有开发者才是真正对软件质量负责的人.没有好的软件设计,软件质量基本上是无从谈起.当然,要做到这一点是需要额外 ...