Подтвердить что ты не робот

Узнать зарегистрированного пользователя в Django

Я создал список из 5 пользователей. Как узнать, какой пользователь зарегистрировался в настоящее время? Также, пожалуйста, укажите, есть ли способ узнать, вошел ли пользователь суперпользователя?

Мое требование: я хочу ограничить доступ определенных страниц в шаблонах только к суперпользователю.

4b9b3361

Ответ 1

Текущий пользователь находится в объекте запроса:

def my_view(request):
    current_user = request.user

Это класс django.contrib.auth.models.User, и он имеет несколько полей, например.

  • is_staff - Boolean. Указывает, может ли этот пользователь получить доступ к сайту администратора;
  • is_superuser - Boolean. Указывает, что у этого пользователя есть все разрешения без явного назначения их.

http://docs.djangoproject.com/en/1.1/topics/auth/#django.contrib.auth.models.User

Итак, чтобы проверить, является ли текущий пользователь суперпользователем, вы можете:

if user.is_active and user.is_superuser:
    ...

Вы можете использовать его в шаблоне или передать его в шаблон как переменную через контекст.

Ответ 3

Просмотрите user_passes_test декоратор для ваших просмотров. Фрагменты Django имеют соответствующий декоратор:

Эти декораторы основаны на user_passes_test и permission_required, но когда пользователь вошел в систему и не прошел тест, он сделает ошибку 403 вместо перенаправление на login - только анонимный пользователям будет предложено войти в систему.

http://www.djangosnippets.org/snippets/254/