我有一个序列化器和这样的登录视图。
class LoginView(generics.RetrieveAPIView):
serializer_class= LoginSerializer
queryset=User.objects.all()
error_messages = {
'invalid': "Invalid username or password",
'disabled': "Sorry, this account is suspended",
}
def _error_response(self, message_key):
data = {
'success': False,
'message': self.error_messages[message_key],
'user_id': None,
}
def post(self,request):
email = request.POST.get('email')
password = request.POST.get('password')
user = authenticate(email=email, password=password)
if user is not None:
if user.is_active:
login(request, user)
return Response(status=status.HTTP_100_OK)
return self._error_response('disabled')
return self._error_response('invalid')
和序列化器:
class LoginSerializer(serializers.ModelSerializer):
class Meta:
model=User
fields=('email','password')
我的网址:
(r'^login/$',LoginView.as_view())
当我运行代码时,在/ login /处出现错误配置错误。期望使用名为“ pk”的URL关键字参数调用LoginView。修复您的URL conf,或.lookup_field
在视图上正确设置属性。
我目前没有重定向。我做错了什么?
根据文档需要,您可以使用generic.RetrieveAPIView
它们来扩展RetrieveModelMixin
和GenericAPIView
,pk
或者必须.lookup_field
在类中进行设置。
RetrieveAPIView
用来get
和get
手段检索数据和检索它需要的数据pk
。
使用另一个类来处理您的 POST
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句