Есть ли способ изменить представление Django-rest-auth входа в систему?

Я создал остальные API, используя Django-rest-auth, при входе в систему он возвращает ключ и некоторую информацию о пользователе, но мне нужно добавить некоторый статус, такой как "успех", "сообщение" и некоторые другие вещи. Есть ли способ переопределить представление django-rest-auth для входа в систему?

class TokenSerializer(serializers.ModelSerializer):
    user = UserSerializer(many=False, read_only=True)  # this is add by myself.
    device = DeviceSerializer(many=True, read_only=True)

    class Meta:
        model = TokenModel
        fields = ('key', 'user', 'device',)

1 ответ

Решение

Создайте собственный класс представления и используйте его

from rest_auth.views import LoginView


class CustomLoginView(LoginView):
    def get_response(self):
        orginal_response = super().get_response()
        mydata = {"message": "some message", "status": "success"}
        orginal_response.data.update(mydata)
        return orginal_response

и измени свой urls.py как

urlpatterns = [
                  url(r'custom/login/', CustomLoginView.as_view(), name='my_custom_login')

              ] 

теперь вы должны использовать конечную точку /custom/login/ вместо /rest-auth/login

Другие вопросы по тегам