创建Django Rest Framework特设post方法

时间:2015-02-25 15:14:14

标签: django django-rest-framework

我正在使用Django Rest Framework,我想创建一个用于注册新用户的临时post方法。

当我尝试下面的代码时,我收到以下错误:

  

使用名为“pk”的URL关键字参数调用预期视图UserViewSet。修复您的网址,或者在视图上正确设置.lookup_field属性。

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)

1 个答案:

答案 0 :(得分:0)

您正在创建用户,因此self.get_object()无法获得任何对象。如果您正在查看,更改或删除已经存在的对象(并且将由URL模式中的pk参数标识),则此方法将起作用。

您应该只创建一个新的用户对象,而不是调用self.get_object()