Django自定义表单注册类型错误位于/accounts/register register()缺少1个必需的位置参数:';用户名';
在/账户/登记处配置不当 无法创建保存电子邮件的目录:/home/user/Desktop/emails([Errno 13]权限被拒绝:'/home/user') 它指向views.register in account中的这一行“user.email\u user(subject,message,html\u message=message)” auth.htmlDjango自定义表单注册类型错误位于/accounts/register register()缺少1个必需的位置参数:';用户名';,django,forms,django-forms,Django,Forms,Django Forms,在/账户/登记处配置不当 无法创建保存电子邮件的目录:/home/user/Desktop/emails([Errno 13]权限被拒绝:'/home/user') 它指向views.register in account中的这一行“user.email\u user(subject,message,html\u message=message)” auth.html <form id='registration-form' method='post' action={% url 'acc
<form id='registration-form' method='post' action={% url 'accounts:register' %}>
{% csrf_token %}
<div class="form-group">
<input type="text" class="form-control input-upper" id="fullname" placeholder="John Doe" name="fullname" required><br>
<input type="text" class="form-control input-upper" id="username" placeholder="Username" name="username"><br>
<input type="email" class="form-control input-upper" id="email" placeholder="Email" name="email" required><br>
<input type="text" class="form-control input-upper" id="organization" placeholder="Organization" name="organization" required><br>
<input type="password" class="form-control input-upper" id="password" placeholder="Password" name="password1" required><br>
<input type="password" class="form-control input-upper" id="password" placeholder="Confirm Password" name="password2" required><br>
<small>By registering you agree to our <a href="{% url 'tos' %}">terms and conditions</a></small>
<button type="submit" value='register' id='reg-submit-btn' class="btn btn-primary btn-block btn-signup-form">SIGN UP</button>
<button type="button" class="btn btn-primary btn-block btn-sign-linkedin" href="{% url 'social:begin' 'linkedin-oauth2' %}?next={{ next }}">Sign up with LinkedIn</button>
<p class="text-already">Already have an account? <a href="" >LOGIN</a></p>
</div>
</form>
Views.py
@transaction.atomic
def register(request):
"""Process registration of new users"""
if request.user.is_authenticated:
return JsonResponse({'status': 'loggedin'})
status = dict()
status['status'] = 'failure'
if request.method == 'POST':
form = RegistrationForm(request.POST)
if form.is_valid():
# Save Profile details
user = form.save()
current_site = get_current_site(request)
subject = 'DHIS2 Account Activation'
message = render_to_string(
'registration/account_activation_email.html',
{
'user': user,
'domain': current_site.domain,
'uid': urlsafe_base64_encode(
force_bytes(
user.pk)).decode(),
'token': account_activation_token.make_token(user),
},
request=request)
user.email_user(subject, message, html_message=message)
Referral.record_response(request, "REGISTERED")
#return JsonResponse({'status': 'success'})
return redirect('accounts:account_activation_sent')
status = form.errors
status['status'] = 'failure'
return JsonResponse(status)
我得到一个状态为:Failure的json响应,密码1:“此字段是必需的。”密码2:“此字段是必需的。
我可能做错了什么?可能模板没有保存或其他什么。我如何使用html模板制作自定义django表单。您的模板中没有名为
password1
和password2
的字段;您只有两个名为password
的字段。您需要给它们正确的名称
属性,而不是id
。我这样做了,但现在我收到一个json响应,上面显示状态:失败
@transaction.atomic
def register(request):
"""Process registration of new users"""
if request.user.is_authenticated:
return JsonResponse({'status': 'loggedin'})
status = dict()
status['status'] = 'failure'
if request.method == 'POST':
form = RegistrationForm(request.POST)
if form.is_valid():
# Save Profile details
user = form.save()
current_site = get_current_site(request)
subject = 'DHIS2 Account Activation'
message = render_to_string(
'registration/account_activation_email.html',
{
'user': user,
'domain': current_site.domain,
'uid': urlsafe_base64_encode(
force_bytes(
user.pk)).decode(),
'token': account_activation_token.make_token(user),
},
request=request)
user.email_user(subject, message, html_message=message)
Referral.record_response(request, "REGISTERED")
#return JsonResponse({'status': 'success'})
return redirect('accounts:account_activation_sent')
status = form.errors
status['status'] = 'failure'
return JsonResponse(status)