【问题标题】:Django redirect "/" to index of installed appDjango 将“/”重定向到已安装应用程序的索引
【发布时间】:2013-03-19 07:44:38
【问题描述】:

我正在尝试重定向我的域的 / 以指向我的“前端”应用程序中的索引。 我尝试了很多方法,所有方法都有效。 问题是每次重定向都会调用我的 index_view 两次。 这是我的顶级 urls.py

urlpatterns = patterns('',
     url(r'^$', lambda x: HttpResponseRedirect('/frontend/')),
     url(r'^frontend/', include('frontend.urls', namespace="frontend")),
)

这是我的前端/urls.py

urlpatterns = patterns('',
    url(r'^$', views.index, name='index'),
    url(r'^alert/create/$', views.create_alert, name="create_alert"),
    url(r'^alert/edit/(\w+)', views.edit_alert, name="edit_alert"),
)

每次我去 / 都会调用我的 views.index 两次,我不明白为什么 =/ 我是不是重定向错了?

提前感谢您的帮助!

【问题讨论】:

  • 基本上发生的事情是,您要为每个不是frontend/ 映射的请求发出重定向问题。然后,当您向您的create_alert 发布帖子然后重定向到您的 lambda 时,这将触发(我不确定您为什么在那里,您实际上是在将您的 urls.py 变成一个视图。坏主意。)您发出由于索引的正则表达式与您的重定向相同,因此重定向两次命中索引。
  • 谢谢。更改为在视图中进行重定向并正常工作。

标签: python django url redirect indexing


【解决方案1】:

您可以像这样设置根以使用您的 FE url 模式:

urlpatterns = patterns('',
    url(r'^', include('frontend.urls', namespace="frontend")),
)

如果你想强制重定向到 /frontend/ 那么你需要一个视图来处理重定向。

也许看看 Redirect Generic 视图:https://docs.djangoproject.com/en/1.1/ref/generic-views/#django-views-generic-simple-redirect-to

【讨论】:

  • 感谢您的快速回复。但是我已经尝试过了,我的 views.index 方法仍然被调用了两次 =/
猜你喜欢
  • 2012-12-12
  • 2017-05-25
  • 2015-04-08
  • 1970-01-01
  • 1970-01-01
  • 2013-03-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多