场景一:如果model中字段用CharField,然而你想用数字(类似IntegerField)排序,此时可以用django的extra函数直接调用原生sql的CAST函数即可
Score.objects.filter(**queryDict).extra(select={'sort_name': "CAST({0} as SIGNED)".format(sort)}).order_by( '-sort_name' if order == 'asc' else 'sort_name')
场景一:如果model中字段用CharField,然而你想用数字(类似IntegerField)排序,此时可以用django的extra函数直接调用原生sql的CAST函数即可
Score.objects.filter(**queryDict).extra(select={'sort_name': "CAST({0} as SIGNED)".format(sort)}).order_by( '-sort_name' if order == 'asc' else 'sort_name')