django rest框架中的用户注册

时间:2015-05-11 12:49:45

标签: android python django rest django-rest-framework

我正在为DRF中的Android应用程序创建服务器端,这将需要用户注册和登录\注销端点。当用户登录时,权限也明显不同。

我在这里遵循了其余的框架教程 - http://www.django-rest-framework.org/tutorial/1-serialization/,这个例子真的可以在用户注册(创建)旁边覆盖它。

在教程中,他们从命令行执行此操作(并创建超级用户)。我认为教程示例除了没有注册端点之外,对我的需求非常有用。

我的问题是:

如果重要,我的用户模型实际上是一个UserProfile模型,其中包含用户模型并添加了phone_number ......

非常感谢!

2 个答案:

答案 0 :(得分:0)

普通用户拥有与超级用户不同的权限,您应该为特定用户自定义视图。以下是link,您可以在django中创建用户。

希望它有所帮助。

答案 1 :(得分:0)

我已经从Django文档中复制了它作为第一个问题的答案。

  

Django最强大的部分之一是自动管理   接口。最好的是你可以轻松定制它。

     

如果以超级用户身份登录,您可以创建,编辑和   删除任何对象(模型)。

     

您可以使用职员标志创建员工用户。 “staff”标志控制   是否允许用户登录管理界面(即   该用户是否被视为您的“工作人员”   组织)。由于可以使用相同的用户系统来控制   访问公共(即非管理员)站点,此标志区分   公共用户和管理员之间。

     

“普通”管理员用户 - 即活跃的非超级用户员工 -   通过分配的权限授予管理员权限。每个对象   通过管理界面可编辑有三个权限:一个创建   所有的权限,编辑权限和删除权限   你创建的模型。

     

Django的管理站点使用您可以使用的权限系统   特定用户只能访问他们所在界面的部分   需要。当您创建用户时,该用户没有权限,而且是   由您来授予用户特定权限

对于您提出的第二个问题,您可以执行此类操作。

 from django.contrib.auth.models import User
 from rest_framework.views import APIView
 from rest_framework import status

 class Register(APIView):
    def post(self, request):
      user = User.objects.create(
                username=request.data.get('email'),
                email=request.data.get('email'),
                first_name=request.data.get('firstName'),
                last_name=request.data.get('lastName')
            )
     user.set_password(str(request.data.get('password')))
     user.save()
     return Response({"status":"success","response":"User Successfully Created"}, status=status.HTTP_201_CREATED)