Имеется модель:
class Data(models.Model):
login = models.ForeignKey(User)
sec = models.PositiveIntegerField(u'section')
f = models.PositiveIntegerField(u'data', default=2)
def __unicode__(self):
return str(self.f)
Задача:
Нужно сделать выборку для списка значений sec, который обзначим list_section и отобразить их в шаблоне по секциям. При этом результаты выборки в каждой sec нужно пронумировать. Т.е., например, list_section=[1,2,3], то сначала например результаты выборки для sec=1, затем sec=2 ...:
sec = 1
1. первая запись выборки для sec = 1
2. вторая запись выборки для sec = 1
...
sec = 2
1. первая запись выборки для sec =2
2. вторая запись выборки для sec =2
...
казалось бы, наиболее эффективно выбрать так, за один раз
list_section=[1,2,3,4]
context['data']=Data.objects.filter(sec__in = list_section).values('sec','f')
context['data']
[{'sec': 1L, 'f': 2L}, {'sec': 2L, 'f': 4L}, {'sec': 1L, 'f': 22L}, {'sec': 3L, 'f': 33L}, {'sec': 4L, 'f': 44L}]
другой вариант: делать выборку в цикле
for s in list_section:
context[s]=Data.objects.filter(sec=s).values('sec','f')
Можно ли как-то решить задачу и обойти выборку в цикле?