def _home_key_prefixer(request): if request.method != 'GET': return None prefix = make_prefix(request.GET) cache_key = 'latest_comment_add_date' if request.path_info.startswith('/oc-'): categories = parse_ocs_to_categories(request.path_info[len('/oc-'):]) cache_key += ''.join(str(x.pk) for x in categories) else: categories = None latest_date = cache.get(cache_key) if latest_date is None: qs = BlogItem.objects.all() if categories: cat_q = make_categories_q(categories) qs = qs.filter(cat_q) latest, = qs.order_by('-modify_date').values('modify_date')[:1] latest_date = latest['modify_date'].strftime('%f') cache.set(cache_key, latest_date, 60 * 60 * 12) prefix += str(latest_date) try: redis_increment('homepage:hits', request) except Exception: logger.error('Unable to redis.zincrby', exc_info=True) return prefix
def _home_rest_key_prefixer(request): if request.method != 'GET': return None prefix = make_prefix(request.GET) cache_key = 'latest_comment_add_date' latest_date = cache.get(cache_key) if latest_date is None: qs = BlogItem.objects.all() latest, = (qs .order_by('-modify_date') .values('modify_date')[:1]) latest_date = latest['modify_date'].strftime('%f') cache.set(cache_key, latest_date, 60 * 60 * 5) prefix += str(latest_date) return prefix