有啥方法可以更改登录的 Django-rest-auth 视图?

Posted

技术标签:

【中文标题】有啥方法可以更改登录的 Django-rest-auth 视图?【英文标题】:Is there any way to change view of Django-rest-auth of login?有什么方法可以更改登录的 Django-rest-auth 视图? 【发布时间】:2019-02-06 04:36:24 【问题描述】:

我使用 Django-rest-auth 创建了 REST API,在登录时,它返回密钥和一些用户信息,但我需要添加一些状态,如成功和消息以及其他一些东西。有什么方法可以覆盖 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',)

【问题讨论】:

您在使用Django-rest-auth 的哪个端点? @JPG 127.0.0.1:8000/rest-auth/login 【参考方案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

【讨论】:

好的,我应该像这样在 URL 中添加这个视图吗? url(r'^rest-auth/login/$', LoginView.as_view()),我是否需要像使用自定义序列化程序那样更改设置中的任何内容?谢谢 非常感谢。我有一个问题,如果我对注册做同样的事情,我是否也需要添加保存功能。正如他们在文件中提到的那样?(django-rest-auth.readthedocs.io/en/latest/configuration.html) 或者它也可以与 cutsom/registration 一起使用。 (我试过了,但它给了我相同的响应,但没有更新。) @Kashyap 我不能说如何注册,因为我们必须查看源代码以找到更好的方法

以上是关于有啥方法可以更改登录的 Django-rest-auth 视图?的主要内容,如果未能解决你的问题,请参考以下文章

有啥方法可以使用 css [重复] 更改列表样式圆圈的颜色

有啥方法可以在特定时间自动提交 git 中的更改

有啥方法可以用 Provider 在 Flutter 中全局登录学生吗?

切换暗模式时,有啥方法可以更改 tailwindcss 中的图像?

有啥方法可以在不重新加载的情况下更改标头 URL? [复制]

在 chrome 开发工具中更改样式时,有啥方法可以触发事件?