_validate = validate def validate(*args, **kwargs): validator = _validate(*args, **kwargs) def validate(func, self, *args, **kwargs): if request.method == 'POST': self.form_cancelled = '_cancel' in request.POST if not self.form_cancelled: return validator(func, self, *args, **kwargs) return func(self, *args, **kwargs) return decorator(validate)