У меня здесь проблема с объединением и разбиением на страницы. У меня есть 3 модели:
Я использую отношение Tag для управления отношениями ManyToMany между пэдами и тегами (с атрибутом - поля ManyToMany).
Теперь, когда я делаю соединение в таблицах Pad и Tag, это дает мне что-то вроде этого ...
pad.name tag.name etc
---------------------------
pad1 tag1 ...
pad1 tag2 ...
pad2 tag3 ...
Теперь, когда я создаю объект Paginator () из этих результатов, это явно неправильный счетчик элементов на странице. Я должен был бы перебрать ВСЕ результаты и создать словарь, подобный этому ...
[{name:'pad1', tags:['tag1', 'tag2']}, {name:'pad2' ....]
... и используйте Paginator для получения правильных страниц.
Каков наилучший подход к этой проблеме? Я мог бы сделать запрос БД для каждого объекта Pad на текущей странице, чтобы получить его теги, но я предполагаю, что это рано или поздно убьет сервер (должен быть быстродействующим).
Содержание результатов также может быть довольно длинным, и итерация по всему набору будет стоить много системной памяти (или это? Просветит меня :)).