Django-rest-auth的登录页面可以更改视图吗?

10

我使用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
@JPG http://127.0.0.1:8000/rest-auth/login/ - Kashyap
1个回答

16

创建一个自定义视图类并使用它

from rest_auth.views import LoginView


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

并将您的urls.py更改为

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

              ] 

现在您应该使用端点/custom/login/,而不是/rest-auth/login


1
好的,我应该像这样在URL中添加这个视图吗? url(r'^rest-auth/login/$', LoginView.as_view()), 我需要更改设置中的任何内容吗?就像我们使用自定义序列化器一样?谢谢。 - Kashyap
非常感谢。不过我有一个问题,如果我在注册时做同样的事情,我是否也需要添加保存功能,就像他们在文档中提到的一样?(https://django-rest-auth.readthedocs.io/en/latest/configuration.html) 或者它也可以与自定义/注册一起使用。(我尝试了一下,但是它给我的响应是相同的,没有更新。) - Kashyap
1
@Kashyap 我不能说在注册时该如何操作,因为我们需要查看源代码以找到更好的方法。 - JPG
1
@Kashyap,我的建议是如果你已经解决了问题,请接受这个答案,并在SO上提出一个新的问题,这可能会引起更多的关注。 - JPG
这是更好的方法。在这里 - Ali Husham

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接