Определение, является ли пользователь админом:
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))