Есть ли способ изменить представление 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