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

后端 未结 4 1506
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:32

    You can't do it in django via ORM. But it's quite simple to implement by youself:

    album_ids = [24, 15, 25, 19, 11, 26, 27, 28]
    albums = Album.objects.filter(published=True).in_bulk(album_ids) # this gives us a dict by ID
    sorted_albums = [albums[id] for id in albums_ids if id in albums]
    

提交回复
热议问题