【问题标题】:Django slice a single field in a querysetDjango 对查询集中的单个字段进行切片
【发布时间】:2017-04-27 13:56:47
【问题描述】:

我正在尝试从 char 字段中获取前五个字符,但只针对查询集中的一个字段,但我不断收到各种错误。在视图中是否有有效的方法来做到这一点?

我正在尝试的代码:

var = Model.objects.values('field1', 'field2'[:5], 'field3')

【问题讨论】:

    标签: python django django-queryset slice


    【解决方案1】:

    您可以使用Substr 函数使用field2 的前5 个字母来注释查询集:

    from django.db.models.functions import Substr 
    queryset = Model.objects.all() 
    queryset = queryset.annotate(field2_5=Substr('field2', 1, 5)) 
    

    然后,在值中使用注释字段field2_5

    values = queryset.values('field1', 'field2_5', 'field3')
    

    【讨论】:

    • 这行得通,谢谢。但是你在 5) 之后有一个额外的大括号
    • 谢谢。已更正。
    • Substr 正是我想要的。谢谢!
    猜你喜欢
    • 2012-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-24
    • 2016-12-20
    • 2012-09-30
    • 1970-01-01
    • 2015-10-09
    相关资源
    最近更新 更多