按模型中计算的计算字段对记录进行排序

时间:2019-05-23 10:15:56

标签: python django sorting django-admin

因此,我需要能够通过在模型端计算的计算字段对记录进行排序。

所以我的模型是这样的:

    class User(models.Model):
        data = models.DateTimeField(null=True, blank=False,)
        average = None

        def get_deviation(self):
            return abs(self.average- self.data)

        get_deviation.short_description = 'deviation'
        get_deviation.allow_tags = True

在我的管理员模型中:

    class UserAdmin(admin.ModelAdmin):
        list_display = ('data')

        def changelist_view(self, request, extra_context=None):
            avg_val = User.objects.aggregate(Avg('data'))['data__avg']
            User.average = avg_val 
            list_display = ('data','get_deviation')
            return super(UserAdmin, self).changelist_view(request, extra_context)

因此,我需要能够按记录列表中的新字段进行排序。 有什么建议吗?

0 个答案:

没有答案