Определение, является ли пользователь админом:
from django.http import HttpResponse, HttpResponseRedirect, HttpResponseForbidden from django.contrib import messages from django.utils.decorators import available_attrs from functools import wraps #Пишем декоратор, для контролера def is_user_admin(view_func): @wraps(view_func, assigned=available_attrs(view_func)) def wrap(request, *args, **kwargs): if request.user.is_superuser: #исполняем переданный нам контролер res = view_func(request, *args, **kwargs) else: #редиректим на начальную страницу с ошибкой messages.error(request, u'У Вас недостаточно прав для доступа') return HttpResponseRedirect('/') return res return wrap #Пример применения на контролере @is_user_admin def index_controler(request): context={} return render_to_response('index.html', context, context_instance=RequestContext(request))
Комментарии 0
Пока нет комментариев. Станьте первым!