当我们使用列表作为过滤条件时,Django ORM是否保证过滤器序列?
result = Model.objects.filter(id__in=id_list, user__id=user.id)
id_list就像:[1, 2, 3, 4, 5]
结果是否始终保持序列后跟id_list?
Django Document在哪里提到这个? 谢谢!
答案 0 :(得分:0)
pk_list = [10, 2, 1]
clauses = ' '.join(['WHEN id=%s THEN %s' % (pk, i) for i, pk in enumerate(pk_list)])
ordering = 'CASE %s END' % clauses
queryset = Model.objects.filter(pk__in=pk_list).extra( select={'ordering': ordering}, order_by=('ordering',))`