Django---admin

Django内置admin

1.配置路由

urlpatterns = [url(r'^admin/', admin.site.urls),]

2.定制admin

在admin.py中只需要讲Mode中的某个类注册,即可在Admin中实现增删改查的功能,如:

admin.site.register(models.UserInfo)

但是,这种方式比较简单,如果想要进行更多的定制操作,需要利用ModelAdmin进行操作,如:

方式一:class UserAdmin(admin.ModelAdmin):list_display = ('user', 'pwd',)admin.site.register(models.UserInfo, UserAdmin) # 第一个参数可以是列表
方式二:@admin.register(models.UserInfo)                # 第一个参数可以是列表class UserAdmin(admin.ModelAdmin):list_display = ('user', 'pwd',)

3.ModelAdmin中提供了大量的可定制功能,如:

1. list_display,列表时,定制显示的列。

class UserAdmin(admin.ModelAdmin):list_display = ('user', 'pwd', 'xxxxx')def xxxxx(self, obj):return "xxxxx"

2. list_display_links,列表时,定制列可以点击跳转。

class UserAdmin(admin.ModelAdmin):list_display = ('user', 'pwd', 'xxxxx')list_display_links = ('pwd',)

3. list_filter,列表时,定制右侧快速筛选。

class UserAdmin(admin.ModelAdmin):list_display = ('user', 'pwd')class Ugg(admin.SimpleListFilter):title = _('decade born')parameter_name = 'xxxxxx'
list_filter = ('user',Ugg,)

4. list_select_related,列表时,连表查询是否自动select_related

5. 分页相关

# 分页,每页显示条数list_per_page = 100# 分页,显示全部(真实数据<该值时,才会有显示全部)list_max_show_all = 200# 分页插件paginator = Paginator

6. list_editable,列表时,可以编辑的列

class UserAdmin(admin.ModelAdmin):list_display = ('user', 'pwd','ug',)list_editable = ('ug',)

7. search_fields,列表时,模糊搜索的功能

class UserAdmin(admin.ModelAdmin):search_fields = ('user', 'pwd'

8. date_hierarchy,列表时,对Date和DateTime类型进行搜索

class UserAdmin(admin.ModelAdmin):date_hierarchy = 'ctime'

9. preserve_filters,详细页面,删除、修改,更新后跳转回列表后,是否保留原搜索条件

10. save_as = False,详细页面,按钮为“Sava as new” 或 “Sava and add another”

11. save_as_continue = True,点击保存并继续编辑

save_as_continue = True# 如果 save_as=True,save_as_continue = True, 点击Sava as new 按钮后继续编辑。
# 如果 save_as=True,save_as_continue = False,点击Sava as new 按钮后返回列表。

12. save_on_top = False,详细页面,在页面上方是否也显示保存删除等按钮

13. inlines,详细页面,如果有其他表和当前表做FK,那么详细页面可以进行动态增加和删除

class UserInfoInline(admin.StackedInline): # TabularInlineextra = 0model = models.UserInfoclass GroupAdminMode(admin.ModelAdmin):list_display = ('id', 'title',)inlines = [UserInfoInline, ]

14. action,列表时,定制action中的操作

class UserAdmin(admin.ModelAdmin):# 定制Action行为具体方法def func(self, request, queryset):print(self, request, queryset)print(request.POST.getlist('_selected_action'))func.short_description = "中文显示自定义Actions"actions = [func, ]# Action选项都是在页面上方显示actions_on_top = True# Action选项都是在页面下方显示actions_on_bottom = False# 是否显示选择个数actions_selection_counter = True

15. 定制HTML模板

add_form_template = None
change_form_template = None
change_list_template = None
delete_confirmation_template = None
delete_selected_confirmation_template = None
object_history_template = None

16. raw_id_fields,详细页面,针对FK和M2M字段变成以Input框形式

class UserAdmin(admin.ModelAdmin):raw_id_fields = ('FK字段', 'M2M字段',)

17. fields,详细页面时,显示字段的字段

class UserAdmin(admin.ModelAdmin):fields = ('user',)

18. exclude,详细页面时,排除的字段

class UserAdmin(admin.ModelAdmin):exclude = ('user',)

19. readonly_fields,详细页面时,只读字段

class UserAdmin(admin.ModelAdmin):readonly_fields = ('user',

20. fieldsets,详细页面时,使用fieldsets标签对数据进行分割显示

class UserAdmin(admin.ModelAdmin):fieldsets = (('基本数据', {'fields': ('user', 'pwd', 'ctime',)}),('其他', {'classes': ('collapse', 'wide', 'extrapretty'),  # 'collapse','wide', 'extrapretty''fields': ('user', 'pwd'),}),)

21. 详细页面时,M2M显示时,数据移动选择(方向:上下和左右)

class UserAdmin(admin.ModelAdmin):filter_vertical = ("m2m字段",) # 或filter_horizontal = ("m2m字段",)

22. ordering,列表时,数据排序规则

class UserAdmin(admin.ModelAdmin):ordering = ('-id',)或def get_ordering(self, request):return ['-id', ]

23. view_on_site,编辑时,是否在页面上显示view on set

view_on_site = False
或
def view_on_site(self, obj):return 'https://www.baidu.com'

24. radio_fields,详细页面时,使用radio显示选项(FK默认使用select)

radio_fields = {"ug": admin.VERTICAL} # 或admin.HORIZONTAL

25. show_full_result_count = True,列表时,模糊搜索后面显示的数据个数样式

class UserAdmin(admin.ModelAdmin):# show_full_result_count = True # 1 result (12 total)# show_full_result_count = False  # 1 result (Show all)search_fields = ('user',)

 

转载于:https://www.cnblogs.com/mengqingjian/p/8059881.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/571418.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue 父组件获取接口值传到子组件_vue父组件异步获取数据传给子组件的方法

但是现在问题是父组件的数据是异步获取的&#xff0c;而子组件一开始就会渲染&#xff0c;如果此时没有传入数据&#xff0c;而子组件又要用到数据中的length属性时就会报错&#xff1a;怎么办呢&#xff1f;最简单的办法就是让子组件条件渲染&#xff0c;当有数据的时候才渲染…

python爬取数据需要注意的问题

1 爬取https的网站或是接口的时候&#xff0c;如果是不受信用的SSL证书&#xff0c;会报错&#xff0c;需要添加如下代码&#xff0c;如下代码可以保证当前代码块内所有的请求都自动屏蔽ssl证书问题&#xff1a; import ssl # 这个是爬取https的链接需要的&#xff0c;以及下…

pandas 合并所有列_Python学习:Pandas库+练习资料

pandas包含数据结构和数据处理工具的设计使得在Python中进行数据清洗和分析非常快捷。pandas经常是和NumPy,Scipy以及数据可视化工具matplotlib一起使用的。pandas支持大部分NumPy语言风格的数组计算&#xff0c;但最大的不同在于pandas是用于处理表格型或异质型数据的。而NumP…

oracle 取mac地址,java执行命令,得到Mac地址

public static void main(String[] args) {String os System.getProperty("os.name");System.out.println("操作系统:"os);String address "";if (os ! null && os.startsWith("Windows")) {try {String command "cmd…

solidity 十六进制字符串转十六进制bytes

pragma solidity ^0.4.16;contract Metadata {// 十六进制字符串转换成bytesfunction hexStr2bytes(string data)returns (bytes){uint _ascii_0 48;uint _ascii_A 65;uint _ascii_a 97;bytes memory a bytes(data);uint[] memory b new uint[](a.length);for (uint i 0;…

spring配置主库从库_Spring主从数据库的配置和动态数据源切换原理

原文&#xff1a;https://www.liaoxuefeng.com/article/00151054582348974482c20f7d8431ead5bc32b30354705000在大型应用程序中&#xff0c;配置主从数据库并使用读写分离是常见的设计模式。在Spring应用程序中&#xff0c;要实现读写分离&#xff0c;最好不要对现有代码进行改…

oracle rac实例切换,RAC+单实例DG的切换

RAC单实例DG的切换RAC单实例DG的搭建过程之前切换不成功&#xff0c;和参数设置有关。注意的参数是sid* 之类的&#xff0c;刚搭建好的环境racdbdg是单实例的&#xff0c;是备库&#xff0c;rac节点是主库。搭建完毕&#xff0c;切换了一次&#xff0c;刚好主库是单实例的racdb…

tablueau地图标记圆形_R语言在线地图神器:Leaflet for R包(三) 符号标记

如果还是直接写&#xff0c;会出现错误提示&#xff0c;说找不到经纬度的列像这种情况&#xff0c;就需要进行显式申明了&#xff1a;(顺便换个背景底图)leaflet(dh)%>%addProviderTiles("Esri.WorldStreetMap")%>%setView(116.4,39.9,zoom10)%>%addMarkers…

zabbix自动发现主机并加入组绑定模板

在被监控主机多的情况下&#xff0c;怎样将这些主机加入zabbix server进行监控呢&#xff1f;下面将介绍下zabbix自动发现功能 1、创建自动发现规则 创建“规则名称&#xff0c;配置ip范围及检查方式”&#xff0c;点击“增加”&#xff0c;完成自动发现规则的创建 2、加入组和…

oracle ora 08103,ORA-08103: 对象不再存在

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼[2017-05-17 17:13:22] Function Called in lngGetDataTableWithParametersselect distinct to_char (b.chargeactive_dat, yyyymmdd) as orderdate,to_char(a.recipeno2_int) as recipeno2_chr, b.orderexectype_int as ordertype…

kotlin 用协程做网络请求_中国电信营业厅: 感受 Kotlin 的 quot;加速度quot;

"我们手上是一个很成熟的项目&#xff0c;所以毫无疑问需要保留 Java 代码&#xff0c;目前只会在新开发的页面中使用 Kotlin&#xff0c;并已经感受到了它带来的便利。随着功能的迭代&#xff0c;我们相信更多的功能会转而使用 Kotlin。"—— 付迎鑫&#xff0c;电信…

拖动验证码插件

拖动验证码插件 效果图&#xff1a; 在验证前&#xff0c;提交弹出验证失败&#xff0c;验证后弹出验证成功。 文件结构&#xff1a; css&#xff1a; #drag{ position: relative;background-color: #e8e8e8;width: 300px;height: 34px;line-height: 34px;text-align: center; …

matlab padarray函数零,matlab padarray函数

1padarray功能&#xff1a;填充图像或填充数组。用法&#xff1a;B padarray(A,padsize,padval,direction)A为输入图像&#xff0c;B为填充后的图像&#xff0c;padsize给出了给出了填充的行数和列数&#xff0c;通常用[r c]来表示。padval表示填充方法。它的具体值和描述如下…

如何将已有图片做成透明水印_如何用Photoshop在图片上添加透明水印?

我们经常会在网上看到一些漂亮的图片上有添加各种水印&#xff0c;添加水印可以让图片有一个标记&#xff0c;也可以防止别人盗用你的成果。那么图片上的这些水印是怎么添加的呢&#xff1f;今天&#xff0c;小编就给大家介绍用Photoshop软件来制作图片的透明水印的教程&#x…

[知了堂学习笔记]_网络基础知识_1.OSI参考模型(网络七层协议)

OSI参考模型是国际标准化组织ISO制定的模型&#xff0c;把计算机与计算机之间的通信分成七个互相连接的协议层&#xff0c;如图&#xff1a; 1.1各层功能 1、物理层 最底层是物理层&#xff0c;这一次负责传送比特流&#xff0c;它从第二层数据接收数据帧&#xff0c;并将帧的结…

微信小程序js数组初始化_微信小程序 数组(增,删,改,查)等操作实例详解...

微信小程序 数组(增&#xff0c;删&#xff0c;改&#xff0c;查)等操作最近在做一个小程序的demo。由于不向后台请求数据&#xff0c;所以就涉及到对本地数据的操作&#xff0c;也遇到了一些坑&#xff0c;本文就以数组的增删改查为例&#xff0c;给新手分享一些经验。首先这是…

Linux版本配置环境变量,如何linux环境下配置环境变量过程图解

jdk下载地址&#xff1a;在linux环境下的root同级目录下配置software目录将下载好的jdk上传到software文件夹里面(我使用的操作软件是)到software这个目录下.输入命令:cd /software输入命令:ll就可以看到我们的jdk包解压文件解压命令 tar xzvf jdk-8u111-linux-x64.tar.gz解压之…

linux的mysql本地yum安装_linux下使用yum安装mysql

mysql yum repository提供linux平台上面的MySQL server, client和其它组件的rpm包。它支持以下平台&#xff1a;基于EL5-, EL6-, 和 EL7-的平台&#xff0c;比如对应版本的ed Hat Enterprise Linux, Oracle Linux, CentOSFedora 22, 23, 24步骤&#xff1a;一、添加mysql yum r…

A.PHP读取txt文本文件并分页显示的方法

PHP读取txt文本文件并分页显示的方法作者&#xff1a;TomRobert 字体&#xff1a;[增加 减小] 类型&#xff1a;转载 时间&#xff1a;2015-03-11 我要评论这篇文章主要介绍了PHP读取txt文本文件并分页显示的方法,涉及php操作文件的技巧,具有一定参考借鉴价值,需要的朋友可以参…

python阈值计算_opencv python 图像二值化/简单阈值化/大津阈值法

pip install matplotlib1简单的阈值化cv2.threshold第一个参数是源图像&#xff0c;它应该是灰度图像. 第二个参数是用于对像素值进行分类的阈值, 第三个参数是maxVal&#xff0c;它表示如果像素值大于(有时小于)阈值则要给出的值. OpenCV提供不同类型的阈值&#xff0c;它由函…