我有以下URLConf设置:
urlpatterns = patterns('myapp.views',
url(r'^$', 'index', name="home"),
url(r'^login$', 'login'),
)
到目前为止,在我看来,我有这个:
def index(request):
"""Displays paginated message views"""
return HttpResponseRedirect(reverse("myapp.views.login"))
def login(request):
"""Displays login screen"""
return render_to_response('myapp/login.html', {
"title": "Login"
})
当我尝试进入登录页面时出现问题。 Django似乎无法找到我的网址。
转到网址http://localhost:8000/login,我收到以下错误:
找不到页面(404) 请求方法:GET请求 网址:http://localhost:8000/login 无法找到“登录” 你看到这个错误,因为你的Django中有DEBUG = True 设置文件。将其更改为False,Django将显示一个 标准404页。
似乎即使我使用反向函数根据我的URLConf找到Django自己推荐的URL,它仍然无法找到自己的URL!
有什么想法吗?
编辑: 我需要澄清一些事情:问题不在于Django无法找出正确的URL,而是一旦加载了该URL,Django就无法找到与之关联的视图。
答案 0 :(得分:0)
请你把name属性这样放到你的url中 url(r'^ $','index',name =“home”),
然后使用此名称调用reverse
实施例
urlpatterns = patterns('', url(r'^ archive /(\ d {4})/ $',archive,name =“full-archive”), url(r'^ archive-summary /(\ d {4})/ $',archive,{'summary':True},“arch-summary”), )
来自django.core.urlresolvers导入反向
def myview(request): 返回HttpResponseRedirect(反向('arch-summary',args = [1945]))
答案 1 :(得分:0)
事实证明,错误是由我更改settings.py文件中的STATIC_URL变量引起的。将其更改回“/ static /”使一切正常。