0

使用 django-registration 时,网址让我有点困惑

假设我希望我的 inidex 页面 localhost:8000 成为登录页面,但是 django-registration 的登录 url 有一个 /login 前缀,我是否必须将 /login 放在我的 url 中

url(r'^/login/$', include('registration.backends.default.urls')),

在这种情况下,localhost:8000 将为空,这意味着在部署此项目后,查看 some.com 之类的 url 将为空。

如何将索引页面设置为实际的 django-registration 登录页面

4

3 回答 3

0

不是真的,您需要在您希望用户进行身份验证的视图中包含 @login_required 装饰器,例如。

# views.py

from django.contrib.auth.decorators import login_required
from django.http import HttpResponse

@login_required
def index(request):
    return HttpResponse('Only registers will see this page')

# now you can add the stuff that you would want only the registered users to view, 
# so basically if a new visitors tries to visit your site say at www.abc.com, he will first be redirected to the www.abc.com/login/ where he needs to create an account, once authenticated, he will then be redirected to the index page

一起参考索引页面上的django-registration,注册和登录表单,我做对了吗?

于 2013-02-07T02:49:20.203 回答
0

不知道这是最好的方法,但我想你可以进入 django-registration (registration.auth_urls.py) 并编辑登录 url,使其成为 r'^$' 而不是 r' ^登录/$'。这通常不是最佳做法,但应该可以。

于 2013-02-07T02:51:51.817 回答
0

如果您希望您的实际 www.example.com 成为登录页面,只需执行以下操作:

url(r'^$', include('registration.backends.default.urls')),

如果您希望登录页面有自己的页面,请执行以下操作:

url(r'^/login/$', include('registration.backends.default.urls')),

因此,当您访问 www.example.com/login 时,它将进入登录页面。

于 2013-02-19T03:03:15.930 回答