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 查询优化程序处理查询并且针对给定可利用的索引选 ...
随机推荐
- NUMA的取舍与优化设置【转】
NUMA的取舍与优化设置 在os层numa关闭时,打开bios层的numa会影响性能,QPS会下降15-30%; 在bios层面numa关闭时,无论os层面的numa是否打开,都不会影响性能. 安装n ...
- python的pymysql使用方法【转】
前言 pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb几乎相同.但目前pymysql支持python3.x而后者不支持3.x版本. 本文测试python版本:2.6.6.m ...
- Python使用MySQL数据库【转】
转自 Python使用MySQL数据库(新)[很详细][fetchall和fetchmany有啥区别呢?] - CSDN博客https://blog.csdn.net/u011350541/artic ...
- hibernate框架学习之主键生成策略generator
1)手工控制 assigned(不限制类型) 2)数据库自动生成 uuid(字符串类型) increment(整型数值类型) identity (整型数值类型) sequence (整型数值类型) n ...
- ansible笔记(11):初识ansible playbook(二)
ansible笔记():初识ansible playbook(二) 有前文作为基础,如下示例是非常容易理解的: --- - hosts: test211 remote_user: root tasks ...
- zabbix3.2监控redis
redis的监控 .监控脚本 # vim /usr/local/zabbix_agents_3.2.0/scripts/redismonitor.sh #! /bin/bash #Name: redi ...
- JetBrains GoLand 2018 激活码/ 注册码(最新破解方法)
1 前言 本机测试环境如下: Goland版本:2018.1.5 电脑系统:win7 64位 JetbrainsCrack.jar:链接: https://pan.baidu.com/s/1blmN3 ...
- 28)django-form+ajax实现验证
form+ajax实现验证 #obj.errors返回的是ErrorDict,不是字典(虽然继承字典) #obj.errors.as_json() 返回的字符串(前端要连续反解两次) #obj.err ...
- (转)整理 node-sass 安装失败的原因及解决办法
转载地址:https://segmentfault.com/a/1190000010984731
- log4net使用的两种方式
1.首先添加log4net.dll引用(可以使用 管理NuGet程序包添加引用,也可以下载下来手动去添加引用) 2.在app.config文件中配置 3.log4net使用的2终方式 log4net ...