如何设置django root url作为登录url?

时间:2013-02-07 02:23:50

标签: python django login django-registration

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

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

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

在这种情况下,localhost:8000将为空,表示在部署此项目后,表示像something.com一样的URL将为空。

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

3 个答案:

答案 0 :(得分: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, registration and login form on index page together, did I do it right?

答案 1 :(得分:0)

不知道这是解决问题的最佳方法,但我想你可以进入django-registration(registration.auth_urls.py)并编辑登录网址,以便它改为r'^ $' of r'^ login / $'。这通常不是最好的做法,但应该有效。

答案 2 :(得分:0)

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

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

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

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

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