Django 管理员排序:按整数注释排序,就像它是字符串一样

问题描述

我需要 django(2.1.1) 管理员按计算值对模型的更改列表页面进行排序。这是我在管理类中的内容:

    def get_queryset(self,request):
        qs = super().get_queryset(request)
        qs = qs.annotate(
            virtual_sale=ExpressionWrapper(Func(F('sales_total'),Value('virtual'),Value('count'),function='jsonb_extract_path_text'),output_field=IntegerField())
            )
        return qs

    def virtual_sale(self,obj):
        return obj.virtual_sale
    virtual_sale.admin_order_field = 'virtual_sale'

仅供参考,注释是从 JSONField "sales_total" 中提取一个 IntegerField "virtual_sale"。

但是在排序时,它的排序方式是 virtual_sale 值是字符串,我的意思是它是这样排序的:[0,1,11,2,330,5]

问题是什么,我该如何解决?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)