首页 文章

Django下一步重定向默认视图

提问于
浏览
0

我正在尝试进入页面,而我没有登录,应用程序将我重定向到登录页面并获取下一个参数正在运行(例如

localhost:8000/login/?next=/blog/add/

但是当我输入登录名和密码并单击登录按钮时,它会将我重定向到主页,而不是下一个参数中的那个

localhost:8000, not localhost:8000/blog/add/

我正在使用默认的django登录视图,因此可以在不更改登录视图中的任何内容的情况下执行此操作吗?

一切都是django的默认值,我在重定向到登录页面时只添加了下一个参数(使用@login_required(login_url ='login')),我听说Django内置了用于在登录后使用下一个参数进行重定向的功能,不再需要?

urls.py

url(r'^login/$',
        django.contrib.auth.views.login,
        {
            'template_name': 'user/login.html',
            'authentication_form': user.forms.BootstrapAuthenticationForm,
            'extra_context':
            {
                'title': 'Logowanie',
                'year': datetime.now().year,
            }
        },
        name='login'),

的login.html

<form action="" method="post" class="form-horizontal">
                {% csrf_token %}
                <h4>Uzyj konta LDAP zeby sie zalogowac</h4>
                <hr />
                <div class="form-group">
                    <div class="col-md-10">
                        {{ form.username }}
                    </div>
                </div>
                <div class="form-group">
                    <div class="col-md-10">
                        {{ form.password }}
                    </div>
                </div>
                <div class="form-group">
                    <div class="col-md-10">
                        <input type="hidden" name="next" value="/" />
                        <input type="submit" value="Zaloguj" class="btn btn-primary btn-block btn-pb" />
                    </div>
                </div>
                {% if form.errors %}
                <p class="validation-summary-errors">Please enter a correct user name and password.</p>
                {% endif %}
            </form>

1 回答

  • 0

    问题是您已将 next 变量硬编码为模板中的 /

    <input type="hidden" name="next" value="/" />
    

    您应该将其更改为使用 {{ next }}

    <input type="hidden" name="next" value="{{ next }}" />
    

相关问题