LOGIN_REDIRECT_URL已被弃用吗?

时间:2016-03-28 18:13:38

标签: python django

我正在使用mixin检查用户是否经过身份验证,然后才允许他们进入基于类的formview。它工作正常,但如果用户未经过身份验证,则会将其重定向到' / accounts / profile /'的默认登录路径。根据文档,可以使用LOGIN_REDIRECT_URL或甚至settings.py中的LOGIN_URL覆盖此路径。但是,the documentation表示从Django 1.8开始,这两个都被弃用,并将在Django 1.10中删除。我在1.9,并希望将来证明我的代码。如何指定登录URL或登录重定向URL使用非弃用方法?我甚至愿意放弃mixin方法,但是如果检查失败,我将如何根据基于类的视图的请求执行手动检查,然后重定向呢?

class LoginCheckMixin(UserPassesTestMixin):
    def test_func(self):
        if 'id_token' in self.request.session:
            return validate_google_token(self.request.session['id_token'])
        else:
            return False


class RegistrationFormView(LoginCheckMixin, FormView):
    template_name = 'registration/registration_form.html'
    form_class = RegistrationForm
    success_url = 'results'

1 个答案:

答案 0 :(得分:3)

不推荐使用

LOGIN_URLLOGIN_REDIRECT_URL

在Django 1.8中,不推荐使用虚线Python路径作为这些设置的值。说你的登录网址是:

url('^login/$', views.login, name='login')

以下不推荐使用,

LOGIN_URL = 'path.to.views.login'

但你仍然可以使用

LOGIN_URL = '/login/'  # hardcoded url

LOGIN_URL = 'login'  # the name of the url pattern