Django rest_framework 登录,如何记录已登录用户
class UserLoginAPIView(APIView):
permission_classes = [AllowAny]
queryset = User.objects.all()
serializer_class = UserLoginSerializer
def post(self, request, *args, **kwargs):
data = request.data
# 输出当前登录用户
print(self.request.user)
username = data.get('username')
password = data.get('password')
user = User.objects.get(username__iexact=username)
if user.check_password(password):
serializer = UserLoginSerializer(data=data)
if serializer.is_valid(raise_exception=True):
new_data = serializer.data
# 记忆已登录用户
self.request.user = user.id
return Response(new_data, status=HTTP_200_OK)
return Response(serializer.errors, status=HTTP_400_BAD_REQUEST)
return Response('password error', HTTP_400_BAD_REQUEST)
这是我的views模块,当用户登录,我用self.request.user = user.id
记忆登录用户id,但是实际上数据并未返回。
我该怎么做才能记住已登录id?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
self.request.user 是个对象,你这样赋值不报错么?
如果是项目使用的话,还是不推荐自己写,当然自己学习另说。
请参看:authentication
from django.contrib import auth
...
这个就是django,这个和drf有什么关系吗?