Some of this reminds me of https://openparliament.ca/, an opensource project covering Canadian politics. Runs off Django and uses a few different data sources. Great site.
Wow, that's an excellent response. You're right. I can't think of any means of easily accomplishing that - if at all; which I find odd, because I would think that would occur at least a few times.
Your first issue is incorrect. You can easily accomplish the query with one sql hit. The extra() command would work if your foreignkey was defined in the comments model.