def register(request): # /register
if request.method != 'POST':
return _error_response(request, err_exp.E_BAD_REQUEST, "must make POST request")
form = RegisterForm(request.POST)
if not form.is_valid():
return _error_response(request, err_exp.E_FORM_INVALID, "user registration form not correctly filled out")
post_data = form.cleaned_data
post_data['password'] = hashers.make_password(post_data['password1']) # get first validated password and hash it
post_data['date_joined'] = datetime.datetime.now()
post_data['is_active'] = True
post_data['email_address'] = post_data['email1']
post_encoded = urllib.parse.urlencode(post_data).encode('utf-8')
req = urllib.request.Request('http://models-api:8000/api/v1/user/create/', data=post_encoded, method='POST')
resp_json = urllib.request.urlopen(req).read().decode('utf-8')
resp = json.loads(resp_json)
if not resp:
return _error_response(request, err_exp.E_REGISTER_FAILED, "no response from models API")
if resp['ok'] == False: # could be much more nuanced. makes web view handle errors
return _error_response(request, err_exp.E_REGISTER_FAILED, resp)
return _success_response(request, resp['resp'])
# fields = ['username', 'password', 'email_address','date_joined','is_active','f_name','l_name', 'bio']
评论列表
文章目录