我从一位退出的同事手中接过了一个Django网络应用程序。目前,该应用的用户必须输入一个非常长的URL来登录该应用并使用它,例如:
http://myapp.company.com/djangoapp/mydir/login
而
的基数(是正确的术语?)URL什么都没有。
所以现在他们希望http://myapp.company.com/自动转发 http://myapp.company.com/djangoapp/mydir/login
听起来很简单,我可以使用HTML或Spring框架来完成它,但是使用Django,我似乎无法解决这个问题。我有一种感觉,我需要编辑urls.py
,但我不确定以什么方式这样做。
我可以访问Django应用程序和托管它的服务器,但它不像cPanel或任何简化工具来管理域。域名本身由远在很远的某个部门的某个未知IT人员建立和拥有。
答案 0 :(得分:1)
<meta http-equiv="refresh" content="0; url=http://example.com/" />
注意:将其放在头部。
此外,对于较旧的浏览器,如果您添加快速链接,以防它没有正确刷新:
<p><a href="http://example.com/">Redirect</a></p>
将显示为
重定向
这仍然允许您通过额外点击到达目的地。
答案 1 :(得分:1)
创建一个指向django RedirectView的网址。
例如。
urls.py
url(_(r'^$'), LoginRedirectView.as_view(), name='redirect-to-login')
views.py
class LoginRedirectView(RedirectView):
pattern_name = 'redirect-to-login'
def get_redirect_url(self, *args, **kwargs):
return '/djangoapp/mydir/login'
或者您可以直接提及重定向网址为url属性
from django.views.generic.base import RedirectView
url(r'^$', RedirectView.as_view(url='http://myapp.company.com/djangoapp/mydir/login'), name='login-redirect')
答案 2 :(得分:1)
最简单的可能是在你的索引中添加一个装饰器来强制登录。但是在登录后他们会被重定向到那个页面,我不知道这对你的情况是否有用。
#view.py
from django.contrib.auth.decorators import login_required
@login_required
def yourindex(request):
...
或者如果使用基于类的视图:
#urls.py
from django.contrib.auth.decorators import login_required
...
url(r'^$' , login_required(Myindex.as_view()) , name='index'),