我的代码如下:
@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())
现在不起作用。
答案 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')