code: def cache_page(*args, **kwargs):
      '''
      Same as django's ``cache_page`` decorator, but wraps the view into
      additional decorators before and after that. Makes it possible to serve multiple
      flavours without getting into trouble with django's caching that doesn't
      know about flavours.
      '''
      decorator = _django_cache_page(*args, **kwargs)
      def flavoured_decorator(func):
          return vary_on_flavour_fetch(decorator(vary_on_flavour_update(func)))
      return flavoured_decoratof cache_page(*args, **kwargs):
      '''
      Same as django's ``cache_page`` decorator, but wraps the view into
      additional decorators before and after that. Makes it possible to serve multiple
      flavours without getting into trouble with django's caching that doesn't
      know about flavours.
      '''
      decorator = _django_cache_page(*args, **kwargs)
      def flavoured_decorator(func):
          return vary_on_flavour_fetch(decorator(vary_on_flavour_update(func)))
      return flavoured_decorator
docs: Same as django's ``cache_page`` decorator, but wraps the view into
      additional decorators before and after that. Makes it possible to serve multiple
      flavours without getting into trouble with django's caching that doesn't
      know about flavours.