代码之家  ›  专栏  ›  技术社区  ›  liansheng

在Django。如何使用字段长度[重复]排序

  •  -1
  • liansheng  · 技术社区  · 6 年前

    如何使用字段长度进行排序
    结果如下:

    Model.objects.all().order_by(len("field"))
    

    sql:

     select * from table order by len(field)
    
    1 回复  |  直到 6 年前
        1
  •  9
  •   Guybrush    6 年前

    在Django 1.8及以上版本中,您可以执行以下操作:

    from django.db.models.functions import Length
    
    obj = Model.objects.all().order_by(Length('field').asc())
    

    已更新 :对于Django的旧版本,您必须依赖纯Python实现:

    sorted(Model.objects.all(), key=lambda o: len(getattr(o, 'field')))