<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def preserve_view(*predicates):
 """ 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. """

    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