python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > Django自定义排序ORM

Django自定义排序ORM示例详解

作者:alue

这篇文章主要为大家介绍了Django自定义排序ORM示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

Django 模型数据排序

在 Django 中,打算对模型数据排序,但排序的方式是需要自定义的。有三种方式

例如,模型如下

class ItemType(TextChoices):  
    A = '选择题', '选择题'  
    B = '填空题', '填空题'  
    C = '简单题', '简单题'  
class Item(models.Model):
    type = models.CharField(choices=options.ItemType.choices)

可以这样定义排序映射:

from django.db.models import  Case, Value, When
type_order = Case(  
    When(type=ItemType.A, then=Value(0)),  
    When(type=ItemType.B, then=Value(1)),  
    When(type=ItemType.C, then=Value(2)),  
)
Item.objects.alias(type_order=type_order).order_by(type_order)

这种方式,要比第一种方式更加高效。

以上就是Django自定义排序ORM示例详解的详细内容,更多关于Django自定义排序ORM的资料请关注脚本之家其它相关文章!

您可能感兴趣的文章:
阅读全文