我有一个序列化程序和我的登录视图。
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。修复您的网址,或者在视图上正确设置.lookup_field
属性。
我目前在视图中没有重定向。 我做错了什么?
答案 0 :(得分:1)
根据需要pk
的文档,您使用generic.RetrieveAPIView
扩展RetrieveModelMixin
和GenericAPIView
,或者您必须在班级中设置.lookup_field
。< / p>
RetrieveAPIView
用于get
,get
表示检索数据并检索所需数据pk
。
使用其他类来处理POST