Django: __in query lookup doesn't maintain the order in queryset
Assuming the list of IDs isn't too large, you could convert the QS to a list and sort it in Python:
album_list = list(albums)
album_list.sort(key=lambda album: album_ids.index(album.id))
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]