如果已经通过Django网址登录,则重定向?

Jur*_*ocs 10 django

目前我使用这些模式登录和注销

urlpatterns += patterns("",
    (r'^login/$', 'django.contrib.auth.views.login', {'template_name': 'login.html'}),
    (r'^logout/$', 'django.contrib.auth.views.logout', {'template_name': 'logout.html'})
)
Run Code Online (Sandbox Code Playgroud)

尽管我的settings.py中有LOGIN_REDIRECT_URL ='/ profile /',但是当我已经登录时,如果我想访问/ login /,Django不会将我发送到/ profile/...

我可以以某种方式重定向auth系统的URL模式吗?我不愿意为此编写自定义视图.

mar*_*dev 25

我在urls.py中使用这样的东西:

from django.contrib.auth.views import login
from django.contrib.auth.decorators import user_passes_test


login_forbidden =  user_passes_test(lambda u: u.is_anonymous(), '/')

urlpatterns = patterns('',
    url(r'^accounts/login/$', login_forbidden(login), name="login"),
Run Code Online (Sandbox Code Playgroud)

  • +1运作完美,我更喜欢使用我的网址名称,以防万一我的路径改变了,答案也做了些修改。 ))` (2认同)