Расширение метода входа в 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"},
}
Другие вопросы по тегам