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