我正在使用Django REST framework编码REST API。该API将成为社交移动应用程序的后端。完成本教程之后,我可以序列化所有模型,并且可以创建新资源并对其进行更新。

我正在使用AuthToken进行身份验证。

我的问题是:

获得/users资源后,我希望应用程序用户能够注册。因此,拥有像/register这样的单独资源还是让匿名用户通过POST来对新资源进行/users更好?

另外,有关权限的一些指导也将非常有用。

最佳答案

因为我的序列化程序不希望显示/检索密码,所以我继续进行了自己的自定义 View 来处理注册。我使该URL与/ users资源不同。

我的网址配置:

url(r'^users/register', 'myapp.views.create_auth'),

我的看法:
@api_view(['POST'])
def create_auth(request):
    serialized = UserSerializer(data=request.DATA)
    if serialized.is_valid():
        User.objects.create_user(
            serialized.init_data['email'],
            serialized.init_data['username'],
            serialized.init_data['password']
        )
        return Response(serialized.data, status=status.HTTP_201_CREATED)
    else:
        return Response(serialized._errors, status=status.HTTP_400_BAD_REQUEST)

我可能是错的,但是似乎您不需要限制此 View 的权限,因为您想要未经身份验证的请求...

08-25 00:59