django 中的自定义登录 URL

jib*_*hew 4 django django-templates django-urls django-views

我是 Django 的新手,我正在研究 Django 的不同选项。我创建了一个基于类的视图,需要用户身份验证才能查看网页。我正在使用内置的 LoginView。

当 url 模式指定如下时

url(r'^login/', auth_views.LoginView.as_view(),name='login'),
Run Code Online (Sandbox Code Playgroud)

它已正确重定向到登录页面。

但当我给予

url(r'^restaurant/login/', auth_views.LoginView.as_view(),name='login'),
Run Code Online (Sandbox Code Playgroud)

当我尝试访问需要用户身份验证的页面时,出现 404 错误。但是当我在浏览器中手动访问该网址时,它工作得很好。这是为什么?这两种情况不应该都有效吗?

Ala*_*air 5

听起来您需要LOGIN_URL在设置中进行设置:

LOGIN_URL = '/restaurant/login/'
Run Code Online (Sandbox Code Playgroud)

或者,最好使用 URL 模式名称,这样在更改登录 URL 时就不必更新设置

LOGIN_URL = 'login'
Run Code Online (Sandbox Code Playgroud)