2016-02-16 2 views
2

У меня есть метод, который я хотел бы выполнить только если администратор вошел в систему.Мы @login_required, Wheres @admin_required

Как украсить этот метод таким образом, что только администраторы могут использовать его?

Как работают группы в Django, как @login_required обрабатывать группы, если вообще?

ответ

3

Есть два способа реализации этого:

1) Используйте user_passes_test декоратора

from django.contrib.auth.decorators import user_passes_test 

@user_passes_test(lambda u: u.is_superuser) 
def my_view(request): 
    ... 

2) Проверьте пользователь внутри вашего зрения:

def my_view(request): 
    if not request.user.is_superuser: 
     return HttpResponse(status=403) # HTTP 403 Forbidden 
    ... 
+0

вау '@ user_passes_test' является мощным – visc

+0

Очень приятно, будет использовать это много! –

Смежные вопросы