class TodoUpdate(UpdateView): model = Todo form_class = TodoForm @method_decorator(permission_required('todo.change_todo')) def dispatch(self, *args, **kwargs): return super(TodoUpdate, self).dispatch(*args, **kwargs)

Или, такой вариант, удалось заставить генерировать исключение
class TodoUpdate(UpdateView): model = Todo form_class = TodoForm @method_decorator(permission_required('todo.change_todo',raise_exception=True)) def dispatch(self, *args, **kwargs): return super(TodoUpdate, self).dispatch(*args, **kwargs)