Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django:重定向更改密码URL_Django_Django Forms - Fatal编程技术网

Django:重定向更改密码URL

Django:重定向更改密码URL,django,django-forms,Django,Django Forms,我有以下两个URL: url(r'^change-password/$',django.contrib.auth.views.password_change,{'template_name': 'meta/changepassword.html', 'post_change_redirect': '/password-changed/'},name='change_password'), url(r'^change-passwordiOS/$',django.contrib.auth.views

我有以下两个URL:

url(r'^change-password/$',django.contrib.auth.views.password_change,{'template_name': 'meta/changepassword.html', 'post_change_redirect': '/password-changed/'},name='change_password'),
url(r'^change-passwordiOS/$',django.contrib.auth.views.password_change,{'template_name': 'meta/changepassword.html', 'post_change_redirect': '/password-changed/'},name='change_passwordiOS'),
我认为,如果在更改密码表单中使用以下内容,它将覆盖将加载的URL:

        {% if 'iOS' in request.path %}
          <input type="hidden" name="next" value="/profileiOS/" />
        {% endif %}
完整更改密码表格:

      <form class="form-horizontal" role="form" method="post" action="">
        {% csrf_token %}
        <fieldset>
          <div class="form-group">
            <label class="col-md-6 control-label">{{ form.old_password.label }}:</label>
            <div class="col-md-6">
              <input name="old_password" type="password" class="form-control"/>
              <div class="text-danger">
                {% for error in form.old_password.errors %}{{ error }}<br/>{% endfor %}
              </div>
            </div>
          </div>
          <div class="form-group">
            <label class="col-md-6 control-label">{{ form.new_password1.label }}:</label>
            <div class="col-md-6">
              <input name="new_password1" type="password" class="form-control"/>
              <div class="text-danger">
                {% for error in form.new_password1.errors %}{{ error }}<br/>{% endfor %}
              </div>
            </div>
          </div>
          <div class="form-group">
            <label class="col-md-6 control-label">{{ form.new_password2.label }}:</label>
            <div class="col-md-6">
              <input name="new_password2" type="password" class="form-control"/>
              <div class="text-danger">
                {% for error in form.new_password2.errors %}{{ error }}<br/>{% endfor %}
              </div>
            </div>
          </div>
          <div class="form-group">
            <div class="text-right col-sm-12">
              <button type="submit" class="btn btn-primary">Change Password^</button>
            </div>
          </div>
        </fieldset>
        {% if 'iOS' in request.path %}
          <input type="hidden" name="next" value="/profileiOS/" />
        {% endif %}
      </form>

您正在密码更改视图中手动重定向到/profile/。您可以将重定向逻辑更改为依赖模板中的post参数:

@login_required
def password_changed(request):
  messages.success(request, 'Your password has been changed.')
  return redirect(request.POST.get('next', reverse('profile')))

您确定它正在将您重定向到/profile/page吗?从您的代码中,它应该转到/password changed/。我认为应该转到/profile/:/。在解释该问题的问题中添加了/password changed/的视图。对不起,回复太慢了。
@login_required
def password_changed(request):
  messages.success(request, 'Your password has been changed.')
  return redirect(request.POST.get('next', reverse('profile')))