创建 Django Rest Framework 临时 post 方法
Create Django Rest Framework ad-hoc post method
我正在使用 Django Rest Framework,我想创建一个临时 post 方法来注册新用户。
当我尝试下面的代码时,出现以下错误:
Expected view UserViewSet to be called with a URL keyword argument named "pk". Fix your URL conf, or set the .lookup_field
attribute on the view correctly.
class UserViewSet(viewsets.ModelViewSet):
queryset = User.objects.all()
serializer_class = UserSerializer
permission_classes = (permissions.AllowAny,)
@list_route(methods=['post'])
def register(self, request, pk=None):
user = self.get_object()
user.save()
return Response(user)
您正在创建 新 用户,因此 self.get_object()
没有要获取的对象。如果您正在查看、更改或删除 已经 存在的对象(并且将由 URL 模式中的 pk
参数标识,则此方法将起作用).
您应该只创建一个新的用户对象而不是调用 self.get_object()
。
我正在使用 Django Rest Framework,我想创建一个临时 post 方法来注册新用户。
当我尝试下面的代码时,出现以下错误:
Expected view UserViewSet to be called with a URL keyword argument named "pk". Fix your URL conf, or set the
.lookup_field
attribute on the view correctly.
class UserViewSet(viewsets.ModelViewSet):
queryset = User.objects.all()
serializer_class = UserSerializer
permission_classes = (permissions.AllowAny,)
@list_route(methods=['post'])
def register(self, request, pk=None):
user = self.get_object()
user.save()
return Response(user)
您正在创建 新 用户,因此 self.get_object()
没有要获取的对象。如果您正在查看、更改或删除 已经 存在的对象(并且将由 URL 模式中的 pk
参数标识,则此方法将起作用).
您应该只创建一个新的用户对象而不是调用 self.get_object()
。