订购名称订单不符合我的要求

时间:2018-05-08 03:11:16

标签: python django

我的代码如下:

 @if(Auth::guard('student')->check())
    <li><span style="color: white">Xin chào </span><a href="#" >{{ Auth::user()->name }}</a></li>
 @else
    <li><a href="{{route('student.login')}}" >Login</a></li>
 @endif

排序为class SwitchesPort(models.Model): name = models.CharField(max_length=32, unique=True) desc = models.CharField(max_length=256, null=True, blank=True) class Meta: ordering = ['name'] ,您看到快照,这不符合我的需要。

我想要name,但有1, 2, ..., 9, 10, 11, 12....

那么,如果我可以根据名称的长度添加订购商品?

如何根据1, 10, 11, ... 2, 3, ..字段的长度创建订购商品?所以我可以用

name

修改-1

我尝试使用ordering = ['-name_length', 'name']

order_by(Length('name').asc())

但是我得到了比较结果,似乎class SwitchesPortListAPIView(ListAPIView): serializer_class = SwitchesPortListSerializer permission_classes = [] queryset = SwitchesPort.objects.all().order_by(Length('name').asc()) 现在不起作用。

1 个答案:

答案 0 :(得分:0)

使用multi-params作为订单参数,在其中添加name

class SwitchesPortListAPIView(ListAPIView):
    serializer_class = SwitchesPortListSerializer
    permission_classes = []
    queryset = SwitchesPort.objects.extra(select={'length':'Length(name)'}).order_by('length', 'name')