Чтобы получить имя пользователя из модели пользователя, вы должны использовать request.user.Это даст вам информацию аутентифицированного пользователя с запросом.Однако, если вы используете simple_jwt, невозможно напрямую использовать request.user в промежуточном программном обеспечении, поскольку механизм аутентификации работает в функции представления.
Таким образом, вы должны вручную выполнить аутентификацию внутри промежуточного программного обеспечения, а затем вы можете использовать request.user для получениялюбые данные из пользовательской модели.
from rest_framework_simplejwt import authentication
class MyMiddleware():
def __init__(self, get_response):
self.get_response = get_response
def __call__(self, request):
response = self.get_response(request)
return response
def process_view(self, request, view_func, view_args, view_kwargs):
request.user = authentication.JWTAuthentication().authenticate(request)[0] # Manually authenticate the token
print(request.user) # Use the request.user as you want