首页 > 解决方案 > Django 错误:未定义名称“LOGIN_REDIRECT_URL”

问题描述

我试图在我的 Django 项目中利用 settings.py 文件中的全局变量LOGIN_REDIRECT_URL避免到处重复 URL。

在我的settings.py 中,我重新定义LOGIN_REDIRECT_URL了:

LOGIN_REDIRECT_URL = "my_app_name:index"

我正在尝试LOGIN_REDIRECT_URL在我login_viewinviews.py中使用如下:

def login_view(request):
    form = LoginForm(data=request.POST)
    if form.is_valid():
        username = form.cleaned_data["username"]
        password = form.cleaned_data["password"]
        user = authenticate(request, username=username, password=password)
        if user is not None:
            login(request, user)
            return HttpResponseRedirect(reverse(LOGIN_REDIRECT_URL))
    else: ...

但是,当我登录时,我收到以下错误消息:

名称“LOGIN_REDIRECT_URL”未定义

我考虑过从 settings.py 导入LOGIN_REDIRECT_URL感觉不对,因为那里的其他变量不需要在任何地方导入。

我究竟做错了什么?

标签: pythondjangoauthenticationdjango-errors

解决方案


您必须导入设置才能使用设置变量

from django.conf import settings

...

return HttpResponseRedirect(reverse(settings.LOGIN_REDIRECT_URL))

推荐阅读