Django RedirectView.as_view无效

时间:2013-12-30 04:00:01

标签: python django

以下是urls.py中的条目

urlpatterns = patterns('',
    # Examples:

  url(r'^login/','juicy.views.login'),

  url(r'^mylogin/',RedirectView.as_view(permanent=False,url="http:\\www.google.com")),
  url(r'^admin/', include(admin.site.urls)),

这是我的模板。

<html>
<head>
    <title>Login Page</title>
</head>
<body>

<form action=\mylogin\ method = get>
    <input type="submit" value="Go to Google">
</form>

 </body>
</html>

问题是每当我点击“转到Google”按钮时,它会尝试打开网址 如

<code>
"http://localhost:8000/mylogin/%5Cwww.google.com". 
<code>

有趣的是它一直工作到昨天晚上。我能够去google.com。清除缓存/ cookie和其他一些修饰后,我重新运行服务器,然后回到原点。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

"http:\\www.google.com"不是您想到的网址。尝试使用正斜杠:"http://www.google.com"

更准确地说,"\\"被解释为单个转义反斜杠,因此您的明显网址为"http:\www.google.com"。如果没有//标记将方案与主机名分开,那么它看起来像是一个相对URL,应该相对于当前页面进行解析 - 这正是您所看到的。

完全转义"\\"序列(或使用不解释转义序列的原始字符串)无法解决您的问题 - "http:\\www.google.com"也是相对URL。我提到这一点主要是为了解释为什么你只在解析后的网址中看到一个%5C序列。 %5C是反斜杠字符的十六进制。

您的表单操作似乎也有反斜杠 - 应为<form action="/mylogin/" method="get">