Возврат пользовательской полезной нагрузки из ответа по умолчанию - PullRequest
0 голосов
/ 24 апреля 2018

В Django 2.0 я использую rest_auth, и в настоящее время он возвращает ответ типа

{
"token": "foo_token",
"user":{
    "pk": 1,
    "username": "admin",
    "email": "test@test.com",
    "first_name": "John",
    "last_name": "Doe"
    }
}

Я хотел бы изменить это, чтобы возвращать что-то кроме ответа по умолчанию, который предоставляет django. Что-то вроде ...

{
"token": "foo_token",
"pk":1,
"username": "admin",
"somefield": "Foo Funk"
}

Мой urls.py сейчас выглядит так

url(r'^rest-auth/registration/', include('rest_auth.registration.urls')),
url(r'^refresh-token/', refresh_jwt_token),
url(r'^api/userlist', users.user_list),

Единственное место, где я могу найти возможность изменить ответ, - это файлы библиотеки, которые, я уверен, не имеет смысла менять. Любая помощь будет отличной.

1 Ответ

0 голосов
/ 25 апреля 2018

rest_auth позволяет изменить ответы, указав собственную реализацию сериализатора в вашем settings.py.

Например, если вы хотите настроить ответ для аутентификации JWT, вы можете создать:

# myapp/serializers.py

class MyCustomJWTSerializer(serializers.Serializer):
    token = serializers.CharField()
    pk = serializers.IntegerField()
    username = serializers.CharField()
    ...

, который затем можно настроить в settings.py как:

REST_AUTH_SERIALIZERS = {
    'JWT_SERIALIZER': 'myapp.serializers.MyCustomJWTSerializer'
}

Более подробная информация здесь: https://django -rest-auth.readthedocs.io / en / latest / configuration.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...