I've already dug into the paginator code. I was hoping there was a way to do it without having to munge query parameters by hand every time I get a new page. I thought my solution was bad but that code in the admin interface is pretty much the same sort of edge-case-ridden sin against nature.
Maybe django.core.paginator needs to account for more complex scenarios, or is there yet some feature I'm missing? - John