РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
348 of 818 menu

Атрибут user

Атрибут user класса HttpRequest предоставляет доступ к модели пользователя, связанной с текущим запросом. Этот атрибут автоматически заполняется промежуточным программным обеспечением аутентификации Django, которое добавляет объект пользователя к каждому запросу. Если пользователь не аутентифицирован, атрибут содержит экземпляр анонимного пользователя, который не имеет прав доступа. Атрибут позволяет проверять статус аутентификации, получать данные пользователя и управлять сессиями.

Синтаксис

request.user

Пример

Давайте проверим, аутентифицирован ли текущий пользователь, и выведем его имя:

from django.shortcuts import render from django.http import HttpResponse def user_profile(request): if request.user.is_authenticated: username = request.user.username return HttpResponse(f"Welcome, {username}!") else: return HttpResponse("Please log in.")

Результат выполнения кода при аутентифицированном пользователе:

"Welcome, john_doe!"

Пример

Давайте используем атрибут user для проверки прав доступа и получения связанных данных:

from django.shortcuts import render from myapp.models import Article def my_articles(request): if request.user.is_authenticated: articles = Article.objects.filter(author=request.user) context = {'articles': articles, 'user': request.user} return render(request, 'my_articles.html', context) else: return render(request, 'login_required.html')

Результат выполнения кода:

[<Article: Первая статья пользователя>, <Article: Вторая статья пользователя>]

Пример

Давайте получим данные текущего пользователя для отображения в профиле:

from django.shortcuts import render def profile_view(request): user = request.user if user.is_authenticated: user_data = { 'username': user.username, 'email': user.email, 'first_name': user.first_name, 'last_name': user.last_name, 'is_active': user.is_active, 'is_staff': user.is_staff } return render(request, 'profile.html', {'user_data': user_data}) else: return render(request, 'login.html')

Результат выполнения кода:

{ 'username': 'john_doe', 'email': 'john@example.com', 'first_name': 'John', 'last_name': 'Doe', 'is_active': True, 'is_staff': False }

Смотрите также

  • атрибут GET,
    который содержит параметры GET-запроса
  • атрибут POST,
    который содержит данные POST-запроса
  • атрибут session,
    который предоставляет доступ к сессии пользователя
  • атрибут method,
    который возвращает HTTP-метод запроса
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить