Perhaps use a proxy model. Putting this off till after the Summit in favor of more demo-able stuff.
This turns into a serious dive into cache invalidation. Pushing out of 2.2. jsocol says the DB won't catch on fire. Notes about how to resume implementation are at http://github.com/erikrose/kitsune/blob/576106-memcache-tags/apps/questions/tests/test_models.py#L183. In summary, Cache Machine doesn't yet support invalidation along many-to-many relationships, largely because the traffic to and from memcached can be immense. Also, it doesn't yet support invalidation along GenericForeignKeys (though that's easier to fix).
Sticking our flush lists in redis should make the many-to-many invalidation we need much more feasible.
Not related to KB => out of 2.3.
taggit 0.9 allows for custom Tag models and should thus make this more possible. http://alexgaynor.net/2010/sep/21/django-taggit-09-released/
P2 leads me to believe that this was considered quite high priority. Does it still make sense to cache these? Or can we close this bug?
Let's hold off until we implement the new IA and then make a call. We may reduce our usage of taggit or kill it altogether. It definitely isn't a P2 at the moment.
We do cache tags. we just dont use cache-machine.