Django: __in query lookup doesn't maintain the order in queryset

后端 未结 4 1514
Happy的楠姐
Happy的楠姐 2020-12-23 21:11

I have ID\'s in a specific order

>>> album_ids = [24, 15, 25, 19, 11, 26, 27, 28]
>>> albums = Album.objects.filter( id__in=album_ids, publi         


        
4条回答
  •  一个人的身影
    2020-12-23 21:33

    You can do it in Django via ORM using the extra QuerySet modifier

    >>> album_ids = [24, 15, 25, 19, 11, 26, 27, 28]
    >>> albums = Album.objects.filter( id__in=album_ids, published= True
                 ).extra(select={'manual': 'FIELD(id,%s)' % ','.join(map(str, album_ids))},
                         order_by=['manual'])
    

提交回复
热议问题