code: def preserve_view(*predicates):
      
      def wrapper(view_callable):
          def _wrapped(self, request, context, *args, **kwargs):
              if all([predicate(request, context) for predicate in predicates]):
                  return view_callable(self, request, context, *args, **kwargs)
              else:
                  raise ViewNotMatched
          return _wrapped
      return wrapper
docs: Raising ViewNotMatched when applied request was not apposite.
  
      preserve_view calls all Predicates and when return values of them was
      all True it will call a wrapped view.
      It raises ViewNotMatched if this is not the case.
  
      Predicates:
      This decorator takes Predicates one or more, Predicate is callable
      to return True or False in response to inputted request.
      If the request was apposite it should return True.