Форум сайта python.su
Общем в бд есть данные, мне их нужно вывести по списку который я сам задал, например
[45,1,98,1543,65,3,12, и т.д.]
Отредактировано Rebra4 (Ноя. 9, 2014 17:53:58)
Офлайн
Несколько вариантов, можно например 1) в коде получать записи по id и формировать список, который будет обработан в шаблоне или в коде или 2) запросом:
1) проходим по списку id и формируем список объектов:
object_ids = [45,1,98,1543,65,3,12] object_list = [] for id in object_ids: object_list.append(Models.objects.get(id=id)
object_ids = [45,1,98,1543,65,3,12] qs= Model.objects.filter(id__in=object_ids)
Отредактировано inoks (Ноя. 9, 2014 20:55:18)
Офлайн
А список хранить в файле? Если записей будет несколько тысяч то наверно это будет в ущерб производительности? Для вывода думаю использовать in_bulk.
Офлайн
2)Формируем QuerySet:object_ids = [45,1,98,1543,65,3,12] qs= Model.objects.filter(id__in=object_ids)
l = [45,1,98,1543,65,3,12] sorted(Model.objects.filter(id__in=l), cmp=lambda x,y: cmp(l.index(x.pk), l.index(y.pk)))
Офлайн
так что там с хранением списка?
Офлайн
так что там с хранением списка?
Где хранить список по-моему абсолютно без разницы. А если беспокоит производительность можно в саму базу добавить поле (sorting, например). И по нему уже сортировать.
P.S.: А вообще просто не очень понятно чего вы хотите добиться, по-этому конкретнее сказать нечего)
Офлайн