Django 提交时Abstractuser未响应的PasswordChangeForm
我有一个自定义的用户模型Django 提交时Abstractuser未响应的PasswordChangeForm,django,change-password,Django,Change Password,我有一个自定义的用户模型 class User(AbstractUser): company = models.CharField(max_length=30, blank=True) 当我尝试使用ChangePasswordForm更改密码时,在提交时,什么也没有发生 @login_required def change_password(request): if request.method == 'POST': form = PasswordChangeForm(
class User(AbstractUser):
company = models.CharField(max_length=30, blank=True)
当我尝试使用ChangePasswordForm更改密码时,在提交时,什么也没有发生
@login_required
def change_password(request):
if request.method == 'POST':
form = PasswordChangeForm(data=request.POST, user=request.user)
if form.is_valid():
form.save()
update_session_auth_hash(request, form.user)
return redirect('/account/profile')
else:
form = PasswordChangeForm(request.user)
args = {'form': form}
return render(request, 'accounts/change_password.html', args)
更改密码.html
{% extends 'base.html' %}
{% block head %}
{% endblock %}
{% load crispy_forms_tags %}
{% crispy form form.helper %}
{% block body %}
<div class="container-fluid">
<div class="card">
<div class="card-body">
<h3>Change password</h3><br>
<form method="post">
{% csrf_token %}
{% crispy form %}
<button type="submit" class="btn btn-primary">Submit</button>
</form>
</div>
</div>
</div>
{%endblock%}
{%extends'base.html%}
{%block head%}
{%endblock%}
{%load crispy_forms_tags%}
{%crispy form.helper%}
{%block body%}
更改密码
{%csrf_令牌%}
{%crispy form%}
提交
{%endblock%}
这是以前使用常规用户模型的情况
希望有人能帮忙 你所说的“什么都没发生”是什么意思?您的浏览器是否发出请求(您可以使用浏览器工具进行检查)。如果有,请添加一些打印/日志记录,以查看视图遵循的代码路径。请注意,当
request.method==“POST”
但表单无效时,视图不会处理这种情况。您可以通过将最后两行移出else:
块来解决此问题。实际上什么也没有发生,而且在浏览器工具中,我看不到有任何请求正在发出。(控制台中没有显示任何内容)。我把最后几行移到了else:block之外,但仍然得到了相同的结果。对不起,我完全弄乱了我的模板,它现在可以正常工作了。