mein views.py:Django Ruhe Framework: Unklare Fehlermeldung
class user_password(generics.UpdateAPIView):
authentication_classes = ([JSONWebTokenAuthentication])
serializer_class = user_password_serializer
def get_queryset(self):
return User.objects.get(id=self.request.user.id)
Aber ich bin immer das, wenn es ausgeführt wird:
AssertionError: Expected view user_password to be called with a URL keyword argument named "pk". Fix your URL conf, or set the
.lookup_field
attribute on the view correctly.
Ich weiß, dass der Serializer in Ordnung ist, denn wenn ich Verwenden Sie eine andere Art von Ansicht für die gleiche Sache. Es funktioniert:
class user_password(APIView):
authentication_classes = ([JSONWebTokenAuthentication])
def put(self, request, format=None):
serializer = user_password_serializer(data=request.data)
if serializer.is_valid():
if request.user.check_password(serializer.validated_data[
'old_password']):
request.user.set_password(serializer.validated_data[
'new_password'])
request.user.save()
return Response({'success': True,
'result': serializer.validated_data},
status=status.HTTP_200_OK)
else:
return Response({'success': False,
'result': "credential mismatch"},
status=status.HTTP_401_UNAUTHORIZED)
return Response({'success': False,
'result': serializer.errors},
status=status.HTTP_400_BAD_REQUEST)
Ich möchte nicht ändern, wie ein Endpunkt erstellt wird. Ich habe einen JWT-authentifizierten Anruf, und ich wünschte/Benutzer/Passwort wäre einfach in der Lage, das "alte Passwort" und "neues Passwort" in den gleichen Benutzer zu putten.
Was mache ich falsch in meiner generics.UpdateAPIView
Klasse? Was ist das .lookup_field
es spricht?
Können Sie die 'urls.py' für die Ansicht freigeben? –
'url (r '^ user/password/$', ansichten.user_password.as_view()),' und ich möchte wirklich kein '/ {user_id} /' in meiner URL haben. Meine App ist JWT-basiert, der Benutzer wird bereits durch das JWT-Token erkannt. Ich möchte nur, dass ein Endpunkt das Benutzerpasswort ändert, derselbe Benutzer, der mit dem JWT-Token übereinstimmt. – JasonGenX