尝试添加新用户(使用Django默认用户模型)。
#api/views.py
@csrf_exempt
@api_view(['GET', 'POST', ])
def signup(request):
print(request.POST)
if request.method == 'POST':
form = UserCreationForm(data=request.POST)
if form.is_valid():
form.save()
return Response('created new user')
else:
return Response('did not')
这是表格。我没有使用原始的html,它是一个React组件
<form className="register-form" noValidate action="api/register/"
method="post" autoComplete="off">
<input type="text" name="username"></input>
<input type="password" name="password"></input>
<input type="submit" value="Submit"></input>
</form>
点击提交成功后,会将发布请求发送到api / register,该请求在urls.py中将其指向views.signup。
form.is_valid总是评估为false,因此不会创建User。据我所知,创建用户所需的唯一字段是用户名和密码。我也尝试过删除UserCreationForm(data = request.POST)中的标签“ data”。这也不起作用。我要去哪里错了?
答案 0 :(得分:0)
通过打印到控制台并检查注册功能中的错误来解决
print(request.POST)
print(form.errors)
print(form.non_field_errors)
用户模型实际上需要用户名,密码1和密码2。已将表单更改为
<form className="register-form" noValidate action="api/register/"
method="post" autoComplete="off">
<input type="text" name="username"></input>
<input type="password" name="password1"></input>
<input type="password" name="password2"></input>
<input type="submit" value="Submit"></input>
</form>
解决了这个问题