【发布时间】:2019-11-11 10:25:37
【问题描述】:
我在 django 中有以下视图,它登录用户并在使用序列化程序序列化用户数据后发回响应。
@api_view(['POST'])
def sign_in(request):
username = request.data['username']
password = request.data['password']
user = authenticate(username=username, password=password)
if user is not None:
update_last_login(None, user) # update the user's last login date
serializer = UserSignInSerializer(user)
return Response(serializer.data)
return Response('Invalid login credentials', status=401)
我不喜欢这个视图的地方是我直接从正文中提取用户名和密码的方式。我想使用相同的序列化程序来检查正文是否有效。这是可能的还是我必须创建一个新的序列化程序来验证请求?这是现有的序列化程序:
class UserSignInSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = ['first_name', 'last_name', 'email', 'username', 'profile']
【问题讨论】:
标签: python django django-rest-framework