Форум сайта python.su
По умолчанию декоратор @method_decorator перебрасывает на страцицу регистрации. Требуется другое поведение: выдать страницу с разъяснениями (либо статическая с правилами, либо raise Http404(пояснения) … )
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)
Отредактировано django2014 (Авг. 2, 2014 14:29:28)
Офлайн
Да напишите свою функцию и не парьтесь, там 10 строк максимум
Как то так, не проверял
def permission_required(url_name): def decorator(func): def wrapper(*args, **kwargs): request = args[0] if not request.user.is_authenticated(): return HttpResponseRedirect(reverse(url_name)) return func(*args, **kwargs) return wrapper return decorator
Отредактировано FishHook (Авг. 2, 2014 15:03:54)
Офлайн