Developer 2024 🎇限时优惠进行中,现在购买立即享受

现在购买

统计数据不会随着查询结果变化而变化

avatarMiracle!沈承永
2月14日738次阅读

BSY43EGRPGUOITMQD65U.png

@admin.register(Payment)
class PaymentAdmin(admin.ModelAdmin):
    fieldsets = [(u'公司信息', {
        'fields': ['Supplier']
    }), (u'支付信息', {
        'fields': ['PayType', 'Bill','Status', 'RecordDate']
    }), (u'其他信息', {
        'fields': ['Memo']
    })]
    search_fields = ('Supplier__OrganizeName', 'PayType', 'Bill','Status', 'Memo')
    list_display = ('Supplier', 'PayType', 'Bill','colored_status','RecordDate', 'Updator', 'Creator')
    list_filter = ('Supplier', 'PayType', 'Bill', 'Status', 'RecordDate', 'Updator', 'Creator')
    list_filter_multiples = ('PayType','Status',)
    date_hierarchy = ('RecordDate')
    ordering = ['-RecordDate']
    autocomplete_fields = ['Supplier']
    radio_fields = {'PayType': admin.HORIZONTAL,'Status': admin.HORIZONTAL}
    list_per_page = 20
    show_full_result_count = True
    fields_options = {
        'Supplier': {
            'width': '350px',
            'align': 'left',
        },
        'buttons': {
            'width': '200px',
        },
    }
    def get_summaries(self, request, queryset):
        BILL = "¥{}".format(queryset.aggregate(total=Sum('Bill')).get('total'))
        return ('', '数据合计', '', BILL, '', '')

    get_summaries.short_description = '汇总'
    get_summaries.type = 'danger'
    get_summaries.icon = 'el-icon-s-promotion'
    def get_queryset(self, request):  # 重写get_queryset
        qs = super(PaymentAdmin, self).get_queryset(request)
        if request.user.is_superuser:  # 判断如果是超级管理员返回所有信息
            return qs
        else:
            return qs.filter(Q(Creator=request.user.last_name + request.user.first_name))  # User为当前关联的用户,如果是普通管理员只能看自己

    def save_model(self, request, obj, form, change):
        if not change:
            # the object is being created, so set the user
            obj.Creator = request.user.last_name + request.user.first_name
        obj.save()
发布评论
登录后发表内容
1个评论