首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django管理changelist_view

Django管理changelist_view
EN

Stack Overflow用户
提问于 2016-01-21 13:15:52
回答 1查看 5.7K关注 0票数 1

在ListView中,我只能从当前在列表中查看的对象计算一个部分值:

代码语言:javascript
复制
    def get_context_data(self, **kwargs):
        """ aggiunge il totale ore """
        context = super(OraListView, self).get_context_data(**kwargs)
        x= self.object_list.aggregate(Sum('durata'))
        context['totale_durata'] = x.get('durata__sum')
        return context

如何在管理员中获得相同的结果?

代码语言:javascript
复制
class TimeAdmin(admin.ModelAdmin):

   def get_total(self):
        # context = super(OreAdmin, self).get_context_data(**kwargs)
        # x= self.object_list.aggregate(Sum('durata'))
        # total=x.get('durata__sum')
        total="aaaaaaaa"
        return total

    def changelist_view(self, request, extra_context=None):
        my_context = {
            'total': self.get_total(),
        }
        return super(TimeAdmin, self).changelist_view(request,
            extra_context=my_context)

object_list似乎在管理员中不可用。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-21 13:21:50

您需要额外的步骤和额外的类:

代码语言:javascript
复制
from django.contrib.admin.views.main import ChangeList

class TimeChangeList(ChangeList):
    def get_results(self, request):
        super(TimeChangeList, self).get_results(request)
        totals = self.result_list.aggregate(Sum('durata'))
        self.totale_durata = totals['durata__sum']

class TimeAdmin(admin.ModelAdmin):
    def get_changelist(self, request):
        return TimeChangeList

changelist.html:

    {{ cl.totale_durata|default:0 }
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34924886

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档