我正在为DRF中的Android应用程序创建服务器端,这将需要用户注册和登录\注销端点。当用户登录时,权限也明显不同。
我在这里遵循了其余的框架教程 - http://www.django-rest-framework.org/tutorial/1-serialization/,这个例子真的可以在用户注册(创建)旁边覆盖它。
在教程中,他们从命令行执行此操作(并创建超级用户)。我认为教程示例除了没有注册端点之外,对我的需求非常有用。
我的问题是:
如果重要,我的用户模型实际上是一个UserProfile模型,其中包含用户模型并添加了phone_number ......
非常感谢!
答案 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)