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操作的更多相关文章

  1. Django_admin组件

    1.Django_admin组件的意义 作者:Eric 微信:loveoracle11g 新建Django项目bms图书管理系统 App为book book/models.py添加表关系 from d ...

  2. 关于DOM的操作以及性能优化问题-重绘重排

     写在前面: 大家都知道DOM的操作很昂贵. 然后贵在什么地方呢? 一.访问DOM元素 二.修改DOM引起的重绘重排 一.访问DOM 像书上的比喻:把DOM和JavaScript(这里指ECMScri ...

  3. Sql Server系列:分区表操作

    1. 分区表简介 分区表在逻辑上是一个表,而物理上是多个表.从用户角度来看,分区表和普通表是一样的.使用分区表的主要目的是为改善大型表以及具有多个访问模式的表的可伸缩性和可管理性. 分区表是把数据按设 ...

  4. C# ini文件操作【源码下载】

    介绍C#如何对ini文件进行读写操作,C#可以通过调用[kernel32.dll]文件中的 WritePrivateProfileString()和GetPrivateProfileString()函 ...

  5. js学习笔记:操作iframe

    iframe可以说是比较老得话题了,而且网上也基本上在说少用iframe,其原因大致为:堵塞页面加载.安全问题.兼容性问题.搜索引擎抓取不到等等,不过相对于这些缺点,iframe的优点更牛,跨域请求. ...

  6. jquery和Js的区别和基础操作

    jqery的语法和js的语法一样,算是把js升级了一下,这两种语法可以一起使用,只不过是用jqery更加方便 一个页面想要使用jqery的话,先要引入一下jqery包,jqery包从网上下一个就可以, ...

  7. ASP.NET Aries 入门开发教程7:DataGrid的行操作(主键操作区)

    前言: 抓紧勤奋,再接再励,预计共10篇来结束这个系列. 上一篇介绍:ASP.NET Aries 入门开发教程6:列表数据表格的格式化处理及行内编辑 本篇介绍主键操作区相关内容. 1:什么时候有默认的 ...

  8. 如何在高并发环境下设计出无锁的数据库操作(Java版本)

    一个在线2k的游戏,每秒钟并发都吓死人.传统的hibernate直接插库基本上是不可行的.我就一步步推导出一个无锁的数据库操作. 1. 并发中如何无锁. 一个很简单的思路,把并发转化成为单线程.Jav ...

  9. 【翻译】MongoDB指南/CRUD操作(四)

    [原文地址]https://docs.mongodb.com/manual/ CRUD操作(四) 1 查询方案(Query Plans) MongoDB 查询优化程序处理查询并且针对给定可利用的索引选 ...

随机推荐

  1. Linux 查看系统硬件信息[转]

    原文:http://www.cnblogs.com/ggjucheng/archive/2013/01/14/2859613.html linux查看系统的硬件信息,并不像windows那么直观,这里 ...

  2. 正则表达式、BeautifulSoup、Lxml进行性能对比

    爬取方法 性能 使用难度 安装难度 正则表达式 快 困难 简单(内置) BeautifulSoup 慢 简单 简单 Lxml 快 简单 相对困难

  3. Cascade R-CNN论文讲解(转载)

    转载链接:https://blog.csdn.net/qq_21949357/article/details/80046867 论文思想:为了解决IOU设置带来的最终的AP值,作者引入了cascade ...

  4. linux批量替换文件内容3种方法(perl,sed,shell)

    方法1:perl   这两天在构建一个应用的使用用到了maven,由于project很大,足足有700多个 pom.xml文件,更郁闷的是在很多pom.xml文件里都单独指定了资源库的url,我需要把 ...

  5. Web.config设置system.webServer

    一般情况在iis部署web网站都非常顺利,但是遇到复杂环境,或者被配置过又正在使用的时候,就束手无策了, 因为对IIS和Web.config不熟悉,不知其中要害,导致浪费一天甚至更久的时间去处理一个可 ...

  6. webstorm设置VCS:版本控制顶部按钮

    说明: 每次都在这坑一下,浪费时间,百度只指出在哪,并没有说怎么调出来 我用的版本是10,点击下面的选项按操作设置就可以了 红色箭头:从服务器获取最新代码: 绿色箭头:提交: 白色箭头:撤销

  7. thinkphp中的内置操作数据库与mysql中的函数汇总

    8.4.4 Model类getModelName() 获取当前Model的名称getTableName() 获取当前Model的数据表名称switchModel(type,vars=array()) ...

  8. springcloud-1: 用官方的pom.xml配置添加依赖失败

    在eclipse中用STS生成了一个springcloud应用,pom.xml的核心配置如下: <parent> <groupId>org.springframework.bo ...

  9. CF 489C 暴力处理

    题意: 给你 数的长度 m, 数的每个数的和 Sum: 输出 这个数最小值 和最大值 #include<bits/stdc++.h> using namespace std; int ma ...

  10. [PHP]常量的一些特性

    1. define()函数如果定义了两个名称一模一样的常量,那么它将不会抛出错误,并且只有第一次的定义是生效的,再次定义并不会覆盖先前的值: define('ABC', 0); define('ABC ...