django admin 写XxxxxAdmin时的一些偷懒行为:以tuple的形式返回所有属性(也可以自定义数量)

本文主要是介绍django admin 写XxxxxAdmin时的一些偷懒行为:以tuple的形式返回所有属性(也可以自定义数量),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

Model 部分 

Admin部分


Model 部分 

class Language(models.Model):"""语言"""id = models.AutoField(primary_key=True, blank=False)language_name = models.CharField('语言名称', default='', max_length=50)inuse = models.BooleanField(default=True, verbose_name='是否正在使用')users = models.BigIntegerField('使用人口数量', default=0)use_time = models.IntegerField('使用时长(年)', default=0)origin = models.CharField('起源地', max_length=200, default='')# ancient_civilization = models.ForeignKey(AncientCivilization)explain = models.TextField('语言介绍', default='', max_length=2000)user = models.ForeignKey(UserInfo, on_delete=models.SET_NULL, related_name='language_operator', verbose_name='操作人',to_field='id',null=True)create_time = models.DateTimeField('生成时间', default=timezone.now)modify_time = models.DateTimeField('修改时间', auto_now=True)  # 使用Model.save()来更新才会更新注意def __str__(self, print_all=False):  # 定义打印对象时打印的字符串if print_all:# return ' '.join(('%s' % item for item in self.__dict__.values()))return str(self.__dict__)else:return self.language_name

Admin部分:

1:10这个10代表着Language这个model属性的数量,以tuple的形式返回属性的元组,这样就不用手动将属性一个一个copy过来了,当然了这样也将不方便Main 和 Advance,以及控制显示属性的数量。

class LanguageAdmin(admin.ModelAdmin):obj = Language()list_display = tuple(obj.__dir__()[1:10])readonly_fields = ('create_time', 'modify_time',)list_display_links = ('language_name',)search_fields = ('id', 'language_name', 'user')admin.site.register(Language, LanguageAdmin)

 

这篇关于django admin 写XxxxxAdmin时的一些偷懒行为:以tuple的形式返回所有属性(也可以自定义数量)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/485100

相关文章

spring中的@MapperScan注解属性解析

《spring中的@MapperScan注解属性解析》@MapperScan是Spring集成MyBatis时自动扫描Mapper接口的注解,简化配置并支持多数据源,通过属性控制扫描路径和过滤条件,利... 目录一、核心功能与作用二、注解属性解析三、底层实现原理四、使用场景与最佳实践五、注意事项与常见问题六

Linux线程之线程的创建、属性、回收、退出、取消方式

《Linux线程之线程的创建、属性、回收、退出、取消方式》文章总结了线程管理核心知识:线程号唯一、创建方式、属性设置(如分离状态与栈大小)、回收机制(join/detach)、退出方法(返回/pthr... 目录1. 线程号2. 线程的创建3. 线程属性4. 线程的回收5. 线程的退出6. 线程的取消7.

SpringBoot+EasyExcel实现自定义复杂样式导入导出

《SpringBoot+EasyExcel实现自定义复杂样式导入导出》这篇文章主要为大家详细介绍了SpringBoot如何结果EasyExcel实现自定义复杂样式导入导出功能,文中的示例代码讲解详细,... 目录安装处理自定义导出复杂场景1、列不固定,动态列2、动态下拉3、自定义锁定行/列,添加密码4、合并

mybatis执行insert返回id实现详解

《mybatis执行insert返回id实现详解》MyBatis插入操作默认返回受影响行数,需通过useGeneratedKeys+keyProperty或selectKey获取主键ID,确保主键为自... 目录 两种方式获取自增 ID:1. ​​useGeneratedKeys+keyProperty(推

python删除xml中的w:ascii属性的步骤

《python删除xml中的w:ascii属性的步骤》使用xml.etree.ElementTree删除WordXML中w:ascii属性,需注册命名空间并定位rFonts元素,通过del操作删除属... 可以使用python的XML.etree.ElementTree模块通过以下步骤删除XML中的w:as

Java实现自定义table宽高的示例代码

《Java实现自定义table宽高的示例代码》在桌面应用、管理系统乃至报表工具中,表格(JTable)作为最常用的数据展示组件,不仅承载对数据的增删改查,还需要配合布局与视觉需求,而JavaSwing... 目录一、项目背景详细介绍二、项目需求详细介绍三、相关技术详细介绍四、实现思路详细介绍五、完整实现代码

一文详解Java Stream的sorted自定义排序

《一文详解JavaStream的sorted自定义排序》Javastream中的sorted方法是用于对流中的元素进行排序的方法,它可以接受一个comparator参数,用于指定排序规则,sorte... 目录一、sorted 操作的基础原理二、自定义排序的实现方式1. Comparator 接口的 Lam

SpringBoot中使用Flux实现流式返回的方法小结

《SpringBoot中使用Flux实现流式返回的方法小结》文章介绍流式返回(StreamingResponse)在SpringBoot中通过Flux实现,优势包括提升用户体验、降低内存消耗、支持长连... 目录背景流式返回的核心概念与优势1. 提升用户体验2. 降低内存消耗3. 支持长连接与实时通信在Sp

Python打印对象所有属性和值的方法小结

《Python打印对象所有属性和值的方法小结》在Python开发过程中,调试代码时经常需要查看对象的当前状态,也就是对象的所有属性和对应的值,然而,Python并没有像PHP的print_r那样直接提... 目录python中打印对象所有属性和值的方法实现步骤1. 使用vars()和pprint()2. 使

Python pip下载包及所有依赖到指定文件夹的步骤说明

《Pythonpip下载包及所有依赖到指定文件夹的步骤说明》为了方便开发和部署,我们常常需要将Python项目所依赖的第三方包导出到本地文件夹中,:本文主要介绍Pythonpip下载包及所有依... 目录步骤说明命令格式示例参数说明离线安装方法注意事项总结要使用pip下载包及其所有依赖到指定文件夹,请按照以