Django not REST API用户注册

2024-10-03 09:10:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我的第一个项目是大三的时候。它是旧的(Django 1.8),是正常的Django框架。。。不是休息。你知道吗

它支持网络和移动。你知道吗

我必须为mobile创建端点才能创建用户。你知道吗

我认为这不是一个问题(创建),但我想确保它将被保存。你知道吗

首先,我认为我将创建普通的ModelForm(RegisterAPIForm based-based-model=User with full validation(我的意思是初始化“backend”中的所有字段,对用户不可见|清理|所有字段的数据|特殊覆盖方法save(),另外散列密码并发送电子邮件),在视图中,我将添加如下内容:

class RegistrationAPITestView(View):
   def post(self, request):
       form = RegistrationAPIForm(
           request.POST
       )
       if form.is_valid():
           form.save()
           return JsonResponse({})
       else:
           #check errors and send error code back

或者我应该用另一种方法,通过使用用户对象?你知道吗

class RegistrationAPITestView(View):
       def post(self, request):
           #check if user does not exist
           #password1 and password2 validation
           user = User.objects.create()
           user.name = request.POST['username']
           user.set_password(request.POST['password'])
           #init all fields that user can't choose like groups etc
           user.save()

你觉得呢?我需要甚至不渲染的模型吗?看起来比较安全,但也许我应该换个方向检查一下?有用户对象吗?你知道吗

顺便说一句,注册表格已经存在的网站,但有很多“网络”的东西,我不需要,我不必检查,有另一种方法保存密码,所以我认为我应该创建一个新的。你知道吗

我的代码将在两周内修订(高级假期),但现在我独自一人,想尽我所能。你知道吗


Tags: django方法用户网络form密码requestsave
1条回答
网友
1楼 · 发布于 2024-10-03 09:10:10

第二种选择没有错,但这是你作为一个大三学生应该避免的问题。这一行将使服务器返回一个500错误request.POST['username'],因为如果用户不提供用户名,python将抛出一个键错误,要解决这个问题,只需更改为request.POST.get('username', 'value if doesn\'t exit')也要确保在创建用户之前一切都准备就绪,否则数据库中的记录将不会有用。也给validators to the password打电话,试着涵盖所有可能的场景。记住永远不要相信用户

相关问题 更多 >