python - Django:login_redirect_url 不起作用

标签 python django

我已经编写了自己的登录和注销 View 。

我正在使用 LOGIN_REDIRECT_URL 设置重定向页面。

我的登录 View 相当简单:

def todologin(request):
    if request.method == 'POST':
        form = LoginForm(request.POST)
        if form.is_valid():
            username = form.cleaned_data.get('username')
            password = form.cleaned_data.get('password')
            user = authenticate(username=username, password=password)
            login(request, user)
            url = reverse('pilot:home')
            return HttpResponseRedirect(url)
    else:
        form = LoginForm()
    return render(request, 'login.html', {'form':form})

@login_required
def home(request):

我在主页上使用@login_required

这是 LOGIN_REDIRECT_URL 的值:

LOGIN_REDIRECT_URL = '/login/'
# tried this one too, LOGIN_REDIRECT_URL = 'pilot:login'

我的应用程序的 urls.py:

from django.conf.urls import url
from . import views

urlpatterns = [
    url(r'^signup/', views.signup),
    url(r'^home/', views.home, name='home'),
    url(r'^login/', views.todologin, name='login'),
    url(r'^logout/', views.todologout, name='logout'),
]

尽管如此,它总是重定向到 /accounts/login/?next=/home/

为什么会发生这种情况?

最佳答案

您应该覆盖 settings.py 中的 LOGIN_URL,如下所示。

# ....
LOGIN_URL = '/login/'
# ....

LOGIN_REDIRECT_URL 用于 django 在成功登录后重定向用户。

引用:https://docs.djangoproject.com/en/2.0/ref/settings/#std:setting-LOGIN_URL

关于python - Django:login_redirect_url 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48402177/

相关文章:

jquery - 如何使用 django 和 JSONP 从我的其他网站加载内容?

python - Django 检索 S3 存储桶中的文件列表

django - 在 Django 管理中,我怎样才能知道 bool 值第一次被设置为 true

django - 即使文件已上传,也会获取 "This field is required"

javascript - Django 中的 AJAX 渲染 JSON

python - 如何根据Python中数据帧中其他列的值/计数来计算数据帧中列的值?

python方法解析顺序和菱形继承

python - 将数据从 python 脚本传递到 HTML

python - 请求获取图像,通过 flask 返回

python - 如何对模型中的 2 个 DecimalFields 求和并显示在管理 View 中?