|
15 | 15 | from django.shortcuts import get_object_or_404, render |
16 | 16 | from django.urls import reverse as urlreverse |
17 | 17 | from django.utils.safestring import mark_safe |
| 18 | +from django.utils.text import slugify |
18 | 19 |
|
19 | 20 | import debug # pyflakes:ignore |
20 | 21 |
|
@@ -134,7 +135,9 @@ def build_document_stats_url(stats_type_override=Ellipsis, get_overrides={}): |
134 | 135 |
|
135 | 136 | return urlreverse(document_stats, kwargs={ k: v for k, v in kwargs.iteritems() if v is not None }) + generate_query_string(request.GET, get_overrides) |
136 | 137 |
|
137 | | - cache_key = ("stats:document_stats:%s:%s" % (stats_type, request.META.get('QUERY_STRING',''))) |
| 138 | + # the length limitation is to keep the key shorter than memcached's limit |
| 139 | + # of 250 after django has added the key_prefix and key_version parameters |
| 140 | + cache_key = ("stats:document_stats:%s:%s" % (stats_type, slugify(request.META.get('QUERY_STRING',''))))[:228] |
138 | 141 | data = cache.get(cache_key) |
139 | 142 | if not data: |
140 | 143 | names_limit = settings.STATS_NAMES_LIMIT |
@@ -766,7 +769,7 @@ def build_meeting_stats_url(number=None, stats_type_override=Ellipsis, get_overr |
766 | 769 |
|
767 | 770 | return urlreverse(meeting_stats, kwargs={ k: v for k, v in kwargs.iteritems() if v is not None }) + generate_query_string(request.GET, get_overrides) |
768 | 771 |
|
769 | | - cache_key = "stats:meeting_stats:%s:%s:%s" % (num, stats_type, request.META.get('QUERY_STRING','')) |
| 772 | + cache_key = ("stats:meeting_stats:%s:%s:%s" % (num, stats_type, slugify(request.META.get('QUERY_STRING',''))))[:228] |
770 | 773 | data = cache.get(cache_key) |
771 | 774 | if not data: |
772 | 775 | names_limit = settings.STATS_NAMES_LIMIT |
|
0 commit comments