牌語備忘録 -pygo

あくまでもメモです。なるべくオフィシャルの情報を参照してください。

牌語備忘録 -pygo

Django の ORM で昇順・降順ではなく指定したid順でデータ取るメモ

In [11]: foo_ids = [101, 19, 75]

In [12]: order_ids = ','.join(["{id}".format(id=id) for id in foo_ids])

In [13]: foos = Foo.objects.filter(id__in=foo_ids).extra(select={'order_ids': "FIELD(id, {})".format(order_ids)}, order_by=['order_ids'])

In [14]: foos.values_list('id', flat=True)
Out[14]: [101L, 19L, 75L]

参考