django admin中的list_display全局变量
来源:互联网 发布:sql安装教程 编辑:程序博客网 时间:2024/06/09 21:50
Django的MdoelAdmin有一些全局变量,都是非常关键的,其中一个变量就是list_display。它的默认值:('__str__',),也可以是('__unicode__',);从这个可以看出list_display是一个列表,作用是设置admin的change_list页面显示model纪录的字段,所以list的值是model的字段。但在实际的业务流程中是不能够满足要求的,比如显示销售职员的总销量,这个销量数据是在另一个销量model(Sales)里,是需要动态计算而出;像这样的情况,Django给出了一个方法:
其中obj就是当前model的object。
list_display变量还有一个对应方法:get_list_display(self,request),源代码:
只有一条返回语句,返回全局变量list_display。在其它地方需要使用到这个list_diaplay变量,都是调用这个函数的。为什么不直接调用全局变量呢?会不会是多此一举呢?其实Django给了我们更大的发展空间,试想一下:一个model可能有很多的字段,但不可能全部显示出来,这样页面肯定不好看,而且不同的用户对字段的侧重点是不同的。所以有了get_list_display这个方法就可以实现不同的用户可以显示不同的字段。比如:
点击(此处)折叠或打开
- class XXXAdmin(admin.ModelAdmin) :
- list_display = ('username','get_user_sales')
- def get_user_sales(self,obj) :
- numbers = 0
- for sale in Sales.objects.filter(user=obj) :
- numbers += sale.number
- return numbers
- get_user_sales.short_description = u'累计销量'
list_display变量还有一个对应方法:get_list_display(self,request),源代码:
点击(此处)折叠或打开
- def get_list_display(self, request):
- """
- Return a sequence containing the fields to be displayed on the
- changelist.
- """
- return self.list_display
点击(此处)折叠或打开
- def get_list_display(self, request):
- """
- Return a sequence containing the fields to be displayed on the
- changelist.
- """
- if request.user == 'A' :
- self.list_display = ('AA','AB','AC')
- else :
- self.list_display = ('AA','AB')
- return self.list_display
0 0
- django admin中的list_display全局变量
- Django admin list_display学习
- [django]定义django admin的list_display
- Django Admin管理 fields和list_display的区别
- Django admin 的 list_display 变量统计后台作者发贴总数
- django admin 在1.0中的变化
- Django项目中的Admin应用详解
- Django Admin
- django admin
- django admin
- Django Admin
- Django - Admin
- Django-admin
- Django Admin
- Django Admin
- Django admin
- Django-admin
- django admin添加数据自动记录user到表中的实现
- MFCC 过程理解
- eclipse快捷键大全
- mhash、mcrypt、PHP安装
- Redis常用命令集
- .NET截取指定长度的汉字超出部分用“···”代替
- django admin中的list_display全局变量
- 电磁阀
- GDB调试golang代码
- 西安邮电大学C程序设计大赛初赛
- Weka-filter类-选择样本[5]
- MusicPlayer加载网络音频需要注意的事情
- SoapUI - Groovy Script小应用
- EJB中的拦截器--注解方式
- RecyclerView详解