美文网首页
按choice的元祖第一个字段排序,第一个字段为char类型

按choice的元祖第一个字段排序,第一个字段为char类型

作者: lkning | 来源:发表于2018-04-09 16:44 被阅读0次

    model

    class Maintain(models.Model):
          STATUS = (
            ('NOT_PROCESS', '未处理'),
            ('MAINTAINED', '已保养'),
            ('ACCEPTED', '已受理'),
            ('EXPIRED', '已过期'),
            ('IGNORED', '已忽略'),
          )
          status = models.CharField('保养提醒状态', choices=STATUS, max_length=15)
    
    queryset = queryset.extra(select={"sort": '''
        CASE status WHEN 'ACCEPTED' THEN 1 
                    WHEN 'MAINTAINED' THEN 2 
                    WHEN 'IGNORED' THEN 3 
                    WHEN 'EXPIRED' THEN 4 
                    ELSE 5
                    END
        '''}).order_by('sort')
    

    按照状态自定义排序,select={"sort": '''1"},相当于在每个对象中添加了新的属性,可以按照这个新属性排序

    相关文章

      网友评论

          本文标题:按choice的元祖第一个字段排序,第一个字段为char类型

          本文链接:https://www.haomeiwen.com/subject/dovihftx.html