Расширение метода входа в djoser для получения пользовательских ролей
API входа Djoser возвращает токен пользователя, я также хочу вернуть роли пользователя. Как реализовать такой случай? Вот метод входа в систему:
def login_user(request, user):
token, _ = settings.TOKEN_MODEL.objects.get_or_create(user=user)
if settings.CREATE_SESSION_ON_LOGIN:
login(request, user)
user_logged_in.send(sender=user.__class__, request=request, user=user)
return token
Моя цель - достичь чего-то вроде:
def login_user(request, user):
token, new_user = settings.TOKEN_MODEL.objects.get_or_create(user=user)
if not new_user:
token_and_roles = {
token: token,
roles: [for group.lower() in User.objects.get(user).groups]
}
return token_and_roles
if settings.CREATE_SESSION_ON_LOGIN:
login(request, user)
user_logged_in.send(sender=user.__class__, request=request, user=user)
return token
Как переписать метод входа djoser api?
1 ответ
Пожалуйста, обратитесь к docser serializer settings doc - вам нужно написать собственную версию TokenSerializer и затем установить ее в своих настройках:
DJOSER = {
"SERIALIZERS": {"token": "myapp.serializers.MyTokenSerializer"},
}