Hi. I've got a problem here with a join and pagination. I have 3 Models:
- Pad
- Tag
- TagRelation
I use Tag relation to manage a ManyToMany relationship betweent Pads and Tags (with the through attribute of te ManyToMany field). Now when i do a join on the Pad and Tag tables it gives me something like this...
pad.name tag.name etc
---------------------------
pad1 tag1 ...
pad1 tag2 ...
pad2 tag3 ...
Now when i create a Paginator() object from these results it's obviously the wrong item count per page. I would have to iterate throught ALL the results and generate a dictionary like this...
[{name:'pad1', tags:['tag1', 'tag2']}, {name:'pad2' ....]
... and use the Paginator on this to get the correct pages.
What's the best approach for this Problem? I could do a DB query for each Pad object on the current page to get it's Tags but I guess that would kill the server sooner or later (should be performant).
The content's of the results can also be quite long and iterating through the whole set would cost a lot of system memory (or would it? enlighten me :) ).