首页 > 解决方案 > django 登录重定向到“/undefined”

问题描述

使用 django,我有一个简单的登录表单:

登录.html:

<form id="" method="post" action="{% url 'login' %}" class="form" role="form">
    {% csrf_token %}
    {% bootstrap_form form %}
    <div class="pull-right">
        <button class="btn btn-default pull-right" type="submit"></button>
    </div>
</form>

urls.py:

urlpatterns = [
    path('', MainView.as_view(), name='main'),
    path('admin/', admin.site.urls),
    path('accounts/', include('django.contrib.auth.urls')),
]

在 中settings.py,以下参数:

LOGIN_REDIRECT_URL = 'main'

当我以用户身份登录时,我被多次重定向并最终到达“/未定义”网址,但登录确实有效:

[19/Jul/2019 13:09:53] "GET /accounts/login/ HTTP/1.1" 200 956
# CLICK ON THE SUBMIT BUTTON
[19/Jul/2019 13:09:54] "POST /accounts/login/ HTTP/1.1" 302 0
[19/Jul/2019 13:09:54] "GET / HTTP/1.1" 200 2496
Not Found: /undefined
[19/Jul/2019 13:09:54] "GET /undefined HTTP/1.1" 404 2189

什么可能导致最后一次重定向?'/' 应该是结束 url。

编辑:如果我使用直接http://localhost:8000/accounts/login/URL 登录,我不会被重定向到/undefined

[19/Jul/2019 13:57:51] "GET /accounts/login/ HTTP/1.1" 200 953
[19/Jul/2019 13:57:55] "POST /accounts/login/ HTTP/1.1" 302 0
[19/Jul/2019 13:57:55] "GET / HTTP/1.1" 200 2496

标签: django

解决方案


尝试

LOGIN_REDIRECT_URL = '/main/'

代替

LOGIN_REDIRECT_URL = 'main'

在 settings.py 中告诉我


推荐阅读